2013 mysqldump त्रुटि


18

मेरे पास एक डेटाबेस स्थापित है, जिसे मैं mysql में बैकअप देना चाहूंगा। समस्या mysqldump'maia_mail' तालिका को निर्यात करने में विफल है

# mysqldump -u root -p maia > maia.sql
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `maia_mail` at row: 15

यह 30 सेकंड से कम समय तक चलता है और ऊपर के रूप में त्रुटि हो जाती है।

DB का कुल आकार 1.3GB है जिसमें maia_mail तालिका 1.0GB है

में my.cnfमैं इन सेट है:

[mysqld]
max_allowed_packet      = 1300M
[mysqldump]
max_allowed_packet      = 1300M

कृपया सलाह दें या डेटाबेस को डंप करने के बारे में कुछ मार्गदर्शन दें?


170GB मुक्त स्थान। यह भी एक ही है कि क्या मैं डंप करने के लिए मशीन db पर या दूरदराज है
garfink

ईमेल की प्रतियां तो मुख्य रूप से varchar डेटा
garfink

1300M एक हालिया बदलाव था, समस्या तब मौजूद थी जब इसे डिफ़ॉल्ट 16M पर भी सेट किया गया था। 1300M में परिवर्तन के बाद सर्वर को भी पुनरारंभ किया गया था।
गार्फिंक

मैंने 16M डिफ़ॉल्ट पर वापस सेट किया। डंप परिणाम एक ही त्रुटि 2013 में पंक्ति 15 पर
गरफिंक

जवाबों:


13

मैं आसानी से InnoDB सेटिंग्स को बदलने का सुझाव दे सकता हूं जो कि एक mysqldump को काम करने के लिए केवल एक भारी-भरकम हाथ हो सकता है। आप सुझाव के बारे में मैं क्या पसंद नहीं कर सकता, लेकिन मेरा मानना ​​है कि यह आपका सबसे अच्छा (केवल) विकल्प है। ये रहा:

सुझाव # 1: विस्तारित आवेषण अक्षम करें

Mysqldump के लिए डिफ़ॉल्ट सेटिंग में एक ही INSERT में सैकड़ों या हजारों पंक्तियों को एक साथ जोड़ना शामिल होगा। इसे एक विस्तारित INSERT के रूप में जाना जाता है। यह सिर्फ max_allowed_packet से परे कुछ उग रहा है

मैंने एक पोस्ट पर जवाब दिया Sep 01, 2011( MySQL सर्वर बड़े डंप के आयात में बाधा डाल रहा है) जहां मैंने एक बड़े mysqldump को आयात करने के लिए एक ही काम करने पर चर्चा की। मेरा मानना ​​है कि विस्तारित INSERT को अक्षम करने के साथ-साथ एक कष्टप्रद mysqldump बनाने में मदद मिलेगी।

mysqldump -u root --skip-extended-insert -p maia > maia.sql

बुरी खबर: यह प्रत्येक पंक्ति के लिए एक INSERT कमांड बनाने में क्या करता है। यह निश्चित रूप से mysqldump के प्रदर्शन में लगने वाले समय को बढ़ाएगा। नतीजतन, यह भी समय के लिए बढ़ जाएगा पुनः लोड करने के लिए ले जाता है (शायद 10-100 के कारक द्वारा।

मैं चर्चा की है skip-extended-insertसे पहले

उत्तर # 2: हेक्स के रूप में द्विआधारी डेटा को डंप करें (वैकल्पिक)

Mysqldump के बाइनरी डेटा को अधिक बाइट पोर्टेबल बनाने के लिए, हेक्साडेसिमल में ऐसे डेटा को डंप करें

mysqldump -u root --skip-extended-insert --hex-blob -p maia > maia.sql

बुरी खबर: यह mysqldump को थोड़ा और फूला देगा

कोशिश करो !!!

साइड नोट: max_allowed_packet का अधिकतम आकार 1G है


5

12 जीबी डेटाबेस को डंप करने की कोशिश के दौरान मुझे भी यही त्रुटि मिली। मैंने इसे काम करने के लिए निम्नलिखित बदलाव किए।

  1. कॉन्फ़िगर किया गया max_allowed_packet 1024M तक
  2. कॉन्फ़िगर किया गया net_read_timeout 7200 पर
  3. 7200 में net_write_timeout कॉन्फ़िगर किया गया

नोट: मुझे पता है कि समय मान बहुत अधिक (7200 सेकंड यानी 20 घंटे) हैं। लेकिन मैंने ऐसा किसी भी मौके को पूरा करने के लिए किया है। मैं एक इष्टतम टाइमआउट मान प्राप्त करने की प्रक्रिया में हूं।


2
अन्य उपयोगकर्ताओं के लिए: ये सर्वर पर सेट हो रहे हैं, mysqldump config फाइल में नहीं। इसके अलावा, 7200 सेकंड 2 घंटे हैं, 20 नहीं।
मार्क

वैश्विक net_read_timeout = 120 सेट करें; वैश्विक net_write_timeout = 900 सेट करें; मेरे लिए काम किया
kasi

2

बस अपने my.ini (विंडोज) या my.cnf (लिनक्स) कॉन्फ़िगरेशन फ़ाइल पर निम्न शामिल करें।

[mysqld]
max_allowed_packet=1024M 

[mysqldump]
max_allowed_packet=1024M 
net_read_timeout=3600 
net_write_timeout=3600

2
वर्गों को दूसरे तरीके से घूमना चाहिए।
ऑरेंजडॉग

1

सुनिश्चित करें कि आपके पास डंप लेने के लिए पर्याप्त मेमोरी है। कृपया डंप लेते समय मेमोरी चेक करते रहें, जैसे कि कमांड का उपयोग करना।

free -mt

यदि आप डंप लेते समय थकावट को याद करते हैं तो आपको मिलेगा

mysqldump: त्रुटि 2013: कनेक्शन खो गया


1

मुझे मिला:

--max-allowed-packet=1G --net-buffer-length=32704

... यह काम करता है जहां यह (मज़बूती से) पहले नहीं था, नेट पढ़ने / लिखने के समय परिवर्तन, टीसीपी के रखवाले आदि के बावजूद।

max_allowed_packetसेटिंग्स अकेले यह काम नहीं किया, इसलिए यदि आवश्यक नहीं किया जा सकता net_buffer_lengthप्रयोग किया जाता है। - राल्फ-बोल्टन

विस्तारित आवेषण को अक्षम करने से संशोधित करना max-allowed-packetऔर net-buffer-lengthबेहतर लगता है। - क्रिस्तोफ़र

यह भी देखें कि क्या max_allowed_packet काफी बड़ा है, और मुझे इसे बदलने की आवश्यकता क्यों है?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.