2012-01-05 12 views
19

चला गया है मेरे पास डेटाबेस से एक MYSQL डंप है जिसे मैं एक नए डीबी सर्वर पर जाने की कोशिश कर रहा हूं। जब मैं अपने एसक्यूएल डंप आयात करने की कोशिश, मैं निम्न त्रुटि प्राप्त:लाइन 406 पर MySQL त्रुटि 2006 (HY000): MySQL सर्वर

MySQL Error 2006 (HY000) at line 406: MySQL server has gone away 

मैं इस समस्या googled और ज्यादातर लोगों wait_timeout के मान बदलकर समस्या तय। हालांकि, मेरा वर्तमान मान 28800 (8 घंटे) पर सेट है और जब मैं आयात चलाता हूं तो त्रुटि 8 सेकंड से कम समय में दिखाई देती है।

मैंने max_allowed_packet के मान को 1073741824 पर सेट करने का भी प्रयास किया लेकिन इससे समस्या ठीक नहीं हुई।

mysql डंप के माध्यम से देख रहे हैं, डंप में कुछ ब्लॉब कॉलम हैं, लेकिन कुल फ़ाइल आकार केवल 6 एमबी है।

क्या किसी के पास कोई विचार है कि समस्या क्या हो सकती है?

+2

एक कामकाज के रूप में, मैं स्रोत डेटाबेस सर्वर पर वापस गया और कई छोटी डंप फ़ाइलों (एक समय में 5 टेबल) बना दिया। फिर, मैंने प्रत्येक छोटी डंप फ़ाइलों को आयात किया और यह मुझे त्रुटि संदेश के बिना अपना डेटाबेस हस्तांतरण पूरा करने देता है। – David

उत्तर

6

अधिकतम एमबी फ़ाइल आयात करने की कोशिश करते समय अधिकतम MB_allowed_packet 12 MB (12000000) में मेरे लिए समस्या हल हो गई।

आईएसआई फ़ाइल बदलें या MySQL वर्कबेंच (MySQL पुनरारंभ आवश्यक) में विकल्प फ़ाइल/नेटवर्किंग के तहत बदलें।

यदि आपको अभी भी त्रुटि मिलती है, तो और भी अधिक (100 एमबी) बढ़ने का प्रयास करें। जब आप पूरा कर लें तो बस इसे कम करना याद रखें।

47

भविष्य खोजकर्ताओं के लाभ के लिए इस उत्तर जोड़ा जा रहा है, क्योंकि यह बताता है कि क्यों बढ़ रही है पैकेट आकार समस्या तय:

The situation is that if a client sends a SQL-statement longer than the server max_allowed_packet setting, the server will simply disconnect the client. Next query from the same client instance will find that the ‘MySQL server has gone away’.

... But it would of course be much preferable to have the ‘got packet bigger’ error [Error: 2020 (CR_NET_PACKET_TOO_LARGE)] returned if that is the problem.

के कुछ अंश और पर OSX 10,7 peter_laursen's blog post

के लिए धन्यवाद (शेर), मैंने निम्न सामग्री के साथ एक फ़ाइल, /etc/my.cnf बनाई है:

[mysqld] 
max_allowed_packet = 12000000 

और फिर टी रोक दिया वह mysql सर्वर:

/usr/local/bin/mysql.server stop 

जब यह स्वचालित रूप से पुनरारंभ होता है तो मैं अपने आवेषण निष्पादित करने में सक्षम था।

+1

वैसे मुझे max_allowed_packet = 512M –

+1

@AhhijitBuchake के लिए भी वही समस्या मिली - तो संभवतः यह 'पैकेट बहुत बड़ी' समस्या नहीं है, लेकिन डिस्कनेक्ट के लिए कुछ अन्य कारण है। दुर्भाग्यवश, मेरे पास आपके लिए कोई अन्य सुझाव नहीं है। –

+1

आपको धन्यवाद! मैंने एक दर्जन परिदृश्यों को पढ़ और कोशिश की है। मैंने 3 बार MySQL को पुनः स्थापित किया है। My.cnf के लिए उपरोक्त चाल इसे ठीक करें। मैं कमांड लाइन के माध्यम से mysql में 50 मीटर mysql डेटाबेस जोड़ने की कोशिश कर रहा था। वह पूरी तरह से मेरा दिन बना दिया! – user24793

0

1) MySql कॉन्फ़िग फ़ाइल में बदलें: #

/etc/mysql/my.cnf
#section 
# 
[mysqld] 
# 
key_buffer    = 32M 
max_allowed_packet  = 32M 
thread_stack   = 512K 
thread_cache_size  = 64 
# 

2) MySql deamon को पुनः आरंभ

/etc/init.d/mysql restart 

तुम्हारा मुद्दों को हल करना चाहिए।

संबंधित मुद्दे