ERROR 2006 (HY000): MySQL सर्वर चला गया है


309

मुझे यह त्रुटि तब होती है जब मैं एक बड़ी SQL फ़ाइल (एक बड़ी INSERTक्वेरी) के स्रोत के लिए प्रयास करता हूं ।

mysql>  source file.sql
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    2
Current database: *** NONE ***

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    3
Current database: *** NONE ***

तालिका में कुछ भी अद्यतन नहीं किया गया है। मैंने टेबल / डेटाबेस को हटाने और हटाने की कोशिश की है, साथ ही साथ MySQL को पुनरारंभ करना भी है। इनमें से कोई भी बात समस्या का समाधान नहीं करती है।

यहां मेरा अधिकतम-पैकेट आकार है:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

यहाँ फ़ाइल का आकार है:

$ ls -s file.sql 
79512 file.sql

जब मैं दूसरी विधि की कोशिश करता हूं ...

$ ./mysql -u root -p my_db < file.sql
Enter password: 
ERROR 2006 (HY000) at line 1: MySQL server has gone away

2
यह कितना बड़ा फ़ाइल है? क्या यह संभवतः max_allowed_packet सेटिंग से अधिक है?
मार्क बी

1
ठीक है, यह बात नहीं है। फ़ाइल से अलग-अलग प्रश्नों को खींचने और उन्हें मॉनिटर में स्वयं चलाने का प्रयास करें। वहाँ एक दुर्घटना / काट के कारण कुछ है।
मार्क बी

मैं जिन बेतरतीब ढंग से फ़ाइल से खींचता हूँ वे ठीक काम करते हैं। मैंने SQL प्रोग्रामेटिक रूप से जेनरेट किया, और सब कुछ ठीक से बच गया। तो मुझे यकीन नहीं है कि अगर कोई एक त्रुटि होगी तो क्या होगा?
bgcode

1
मुझे भी यही समस्या है ...
माज़

जवाबों:


561
max_allowed_packet=64M

इस लाइन को my.cnfफाइल में जोड़ने से मेरी समस्या हल हो जाती है।

यह उपयोगी है जब कॉलम में बड़े मूल्य होते हैं, जो मुद्दों का कारण बनते हैं, आप यहां स्पष्टीकरण पा सकते हैं ।

Windows पर यह फ़ाइल यहाँ स्थित है: "C: \ ProgramData \ MySQL \ MySQL सर्वर 5.6"

लिनक्स (उबंटू) पर: / etc / mysql


3
इस समाधान ने मेरे लिए समस्या को हल कर दिया; क्लाइंट-साइड केवल कॉन्फ़िगरेशन / विकल्प के माध्यम से कुछ भी नहीं किया जा सकता है, और मैं PHP या अन्य के माध्यम से प्रोग्रामेटिक समाधान नीचे जाने के लिए तैयार नहीं था।
रिचर्ड सीट्ज

154
आप डेटाबेस में रूट (या सुपर विशेषाधिकार) के रूप में भी लॉग इन कर सकते हैं और ऐसा कर सकते हैं set global max_allowed_packet=64*1024*1024;- इसके लिए MySQL पुनरारंभ की आवश्यकता नहीं है
razzed

3
यह मेरे लिए तय है। my.cnf / etc फोल्डर में स्थित हो सकता है।
सैम क्लोएबर्घ्स

8
आपको इसे कमांड लाइन पर रखने में सक्षम होना चाहिए, जो अस्थायी रूप से एक सिस्टम फ़ाइल को संपादित करने से बचाएगा: <code> mysql --max_allowed_packet = 1GM </ code>
Jan Steinman

6
किसी के लिए my.cnf फ़ाइल के स्थान की तलाश में, आप इस उत्तर की जांच कर सकते हैं । टाइप करके mysql को पुनरारंभ करना न भूलें: sudo service mysql restartप्रभावी होने के लिए my.cnf फ़ाइल में परिवर्तन के लिए।
वाणिज्य दूतावास

148

आप अधिकतम अनुमत पैकेट बढ़ा सकते हैं

SET GLOBAL max_allowed_packet=1073741824;

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_allowed_packet


3
इसने मेरे लिए काम किया, जबकि स्वीकृत उत्तर नहीं दिया। मैं अनुमान लगा रहा हूं कि इस उत्तर का उच्च मूल्य मेरे लिए समाधान की जड़ है।
जॉन Bubriski

मैंने अपने.cnf में max_allowed_packet = 1024M सेट किया
Csaba Toth

1
यही सर्वर करता है। आपको क्लाइंट में ऐसा करने की आवश्यकता है, साथ ही "mysql --max_allowed_packet = 1073741824"।
जनवरी स्टेनमैन 1

इसने मेरे लिए काम किया। एक प्रश्न बाइट्स में "1073741824" है
user2478236

66

वैश्विक अद्यतन और my.cnf सेटिंग्स ने किसी कारण से मेरे लिए काम नहीं किया। max_allowed_packetग्राहक के यहाँ काम करने के लिए सीधे मूल्य पास करना :

mysql -h <hostname> -u username -p --max_allowed_packet=1073741824 <databasename> < db.sql

4
MySQL वेबसाइट के अनुसार, दोनों चिह्नित उत्तर और इसका उपयोग किया जाना चाहिए।
Zenexer

2
इन सेटिंग्स को बदलने के बाद कॉन्फ़िगरेशन फ़ाइलों को फिर से लोड करना या सर्वर को फिर से लोड करना न भूलें
Csaba Toth

2
ध्यान रखें कि --max_allowed_packetकेवल ग्राहक को प्रभावित करता है। फ़ाइल max_allowed_packetमें संपादन करके /etc/my.cnfऔर अपने mysql सर्वर को पुनः आरंभ करके mysql सर्वर (mysqld) को संशोधित करने पर विचार करें।
फ़्लुव

ध्यान दें कि "50M" या "1G" के मानव अनुकूल मूल्य cli पर और my.cnf में काम करते हैं। dev.mysql.com/doc/refman/8.0/en/use-system-variables.html
txyoji

36

सामान्य रूप से त्रुटि:

त्रुटि: 2006 ( CR_SERVER_GONE_ERROR) - MySQL सर्वर चला गया है

इसका मतलब है कि क्लाइंट सर्वर पर सवाल नहीं भेज सकता है


mysql आयात

आपके विशिष्ट मामले में डेटाबेस फ़ाइल को आयात करते समय mysql, इसका सबसे अधिक अर्थ है कि SQL फ़ाइल में कुछ क्वेरीज़ आयात करने के लिए बहुत बड़ी हैं और उन्हें सर्वर पर निष्पादित नहीं किया जा सकता है, इसलिए क्लाइंट पहले हुई त्रुटि पर विफल हो जाता है।

तो आप निम्नलिखित संभावनाएं हैं:

  • बाकी प्रश्नों को आगे बढ़ाने और निष्पादित करने के -fलिए बल विकल्प ( ) जोड़ें mysql

    यह उपयोगी है यदि डेटाबेस में कैश से संबंधित कुछ बड़े प्रश्न हैं जो वैसे भी प्रासंगिक नहीं हैं।

  • बढ़ाएँ max_allowed_packetऔरwait_timeout अपने सर्वर कॉन्फ़िगरेशन (जैसे ~/.my.cnf) में।

  • --skip-extended-insertबड़े प्रश्नों को तोड़ने के लिए विकल्प का उपयोग कर डेटाबेस को डंप करें । फिर इसे आयात करें।

  • के --max-allowed-packetलिए आवेदन करने का प्रयास करें mysql


सामान्य कारण

सामान्य तौर पर यह त्रुटि कई चीजों का मतलब हो सकती है, जैसे:

  • सर्वर के लिए एक प्रश्न गलत है या बहुत बड़ा है,

    समाधान: चर बढ़ाएंmax_allowed_packet

    • सुनिश्चित करें कि चर [mysqld]अनुभाग के तहत है , नहीं [mysql]

    • परीक्षण (जैसे 1G) के लिए बड़ी संख्या का उपयोग करने से डरो मत ।

    • MySQL / MariaDB सर्वर को पुनरारंभ करने के लिए मत भूलना।

    • डबल चेक मान को ठीक से सेट किया गया था:

      mysql -sve "SELECT @@max_allowed_packet" # or:
      mysql -sve "SHOW VARIABLES LIKE 'max_allowed_packet'"
  • आपको क्लाइंट साइड पर टीसीपी / आईपी कनेक्शन से एक टाइमआउट मिला।

    समाधान: चर बढ़ाएंwait_timeout

  • सर्वर से कनेक्शन बंद होने के बाद आपने एक क्वेरी चलाने की कोशिश की।

    समाधान: आवेदन में एक तर्क त्रुटि को ठीक किया जाना चाहिए।

  • होस्ट नाम लुकअप विफल (उदाहरण के लिए DNS सर्वर समस्या), या सर्वर --skip-networkingविकल्प के साथ शुरू किया गया है ।

    एक और संभावना यह है कि आपका फ़ायरवॉल MySQL पोर्ट (उदाहरण के लिए 3306 डिफ़ॉल्ट रूप से) को ब्लॉक करता है।

  • चल धागा मारा गया है, इसलिए फिर से प्रयास करें।

  • आपने एक बग का सामना किया है जहां क्वेरी निष्पादित करते समय सर्वर की मृत्यु हो गई।

  • एक अलग होस्ट पर चलने वाले क्लाइंट के पास कनेक्ट करने के लिए आवश्यक विशेषाधिकार नहीं हैं।

  • और बहुत सारे, इसलिए अधिक जानें: B.5.2.9 MySQL सर्वर चला गया है


डिबगिंग

यहां कुछ विशेषज्ञ-स्तरीय डिबग विचार दिए गए हैं:

  • लॉग की जाँच करें, जैसे

    sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
  • अपने कनेक्शन का परीक्षण mysql, telnetया पिंग फ़ंक्शंस (जैसे mysql_pingPHP में) करें।

  • tcpdumpMySQL संचार को सूँघने के लिए उपयोग करें (सॉकेट कनेक्शन के लिए काम नहीं करेगा), जैसे:

    sudo tcpdump -i lo0 -s 1500 -nl -w- port mysql | strings
  • लिनक्स पर, का उपयोग करें strace। बीएसडी / मैक उपयोग dtrace/ पर dtruss, जैसे

    sudo dtruss -a -fn mysqld 2>&1

    देखें: MySQL को शुरू करने के साथ शुरू करना

MySQL सर्वर या क्लाइंट को डीबग करने का तरीका जानें: 26.5 डिबगिंग और पोर्टिंग MySQL

संदर्भ के लिए, क्लाइंट कमांड के लिए त्रुटि sql-common/client.cफेंकने के लिए जिम्मेदार फ़ाइल में स्रोत कोड की जांच करें CR_SERVER_GONE_ERROR

MYSQL_TRACE(SEND_COMMAND, mysql, (command, header_length, arg_length, header, arg));
if (net_write_command(net,(uchar) command, header, header_length,
          arg, arg_length))
{
  set_mysql_error(mysql, CR_SERVER_GONE_ERROR, unknown_sqlstate);
  goto end;
}

--quick ने मेरे लिए काम नहीं किया लेकिन -स्काइप-एक्सटेंड-इन्सर्ट किया!
मिर्ची

20

बस मामले में, चर का उपयोग करने के लिए आप उपयोग कर सकते हैं

$> mysqladmin variables -u user -p 

यह वर्तमान चर को प्रदर्शित करेगा, इस मामले में max_allowed_packet, और जैसा कि किसी ने दूसरे उत्तर में कहा है कि आप इसके साथ अस्थायी रूप से सेट कर सकते हैं

mysql> SET GLOBAL max_allowed_packet=1072731894

मेरे मामले में cnf फ़ाइल पर ध्यान नहीं दिया गया था और मुझे नहीं पता कि क्यों, इसलिए SET GLOBAL कोड ने वास्तव में मदद की।


एक बार में सभी कॉन्फिग सेटिंग्स देखने में सक्षम होने के लिए बढ़िया है। धन्यवाद!
DrB

20

मैंने त्रुटि को हल किया ERROR 2006 (HY000) at line 97: MySQL server has gone awayऔर क्रम में इन दोनों चरणों को निष्पादित करके सफलतापूर्वक> 5GB sql फ़ाइल माइग्रेट की:

  1. निम्नलिखित सामग्री के साथ दूसरों की सिफारिश की गई /etc/my.cnf बनाई गई:

    [mysql]
    connect_timeout = 43200
    max_allowed_packet = 2048M
    net_buffer_length = 512M
    debug-info = TRUE
  2. --force --wait --reconnectकमांड (यानी mysql -u root -p -h localhost my_db < file.sql --verbose --force --wait --reconnect) को झंडे लगाना ।

महत्वपूर्ण नोट: यह दोनों चरणों को करने के लिए आवश्यक था, क्योंकि अगर मैंने /etc/my.cnf फ़ाइल में परिवर्तन करने से परेशान नहीं किया था और साथ ही उन झंडे को जोड़ दिया था, तो आयात के बाद कुछ टेबल गायब थे।

प्रणाली का इस्तेमाल किया: OSX एल Capitan 10.11.5; mysql Ver 14.14 osx10.8 के लिए डिस्ट्रिब्यूट 5.5.51 (i386)


2
सभी निर्देशों का पालन करने के बाद भी मुझे त्रुटि मिल रही है।
संतोष हेगड़े

उन लोगों के लिए जो एक साझा होस्ट में इस समस्या को चला रहे हैं, कॉन्फ़िगर फ़ाइल को बदल नहीं सकते हैं यह समाधान बहुत अच्छी तरह से काम करता है।
फेलिप कोस्टा

@SantoshHegde बहुत देर हो सकती है, लेकिन आपके द्वारा बदलने के बाद my.cnf, आपको अपनी mysql सेवा को पुनरारंभ करना होगा।
जेसन लियू

11

मुझे भी यही समस्या थी लेकिन [mysqld] के तहत my.ini / my.cnf फाइल में max_allowed_packet को बदलकर ट्रिक बनाई।

एक पंक्ति जोड़ें

max_allowed_packet=500M

अब आपके द्वारा किए जाने के बाद MySQL सेवा को पुनः आरंभ करें।


@babonk हाँ, लेकिन यह उत्तर अधिक उपयोगी है क्योंकि यह कहता है कि किस धारा के तहत इसे जाने की आवश्यकता है
जेसन व्हीलर

11

आप डेटाबेस में रूट (या सुपर विशेषाधिकार) के रूप में भी लॉग इन कर सकते हैं

set global max_allowed_packet=64*1024*1024;

के रूप में अच्छी तरह से एक MySQL पुनरारंभ की आवश्यकता नहीं है। ध्यान दें कि आपको अपनी my.cnfफ़ाइल को अन्य समाधानों में उल्लिखित करना चाहिए :

[mysqld]
max_allowed_packet=64M

MySQL पुनः आरंभ करने के बाद परिवर्तन की पुष्टि करें:

show variables like 'max_allowed_packet';

आप कमांड-लाइन का भी उपयोग कर सकते हैं, लेकिन इसके लिए स्टार्ट / स्टॉप स्क्रिप्ट को अपडेट करने की आवश्यकता हो सकती है जो सिस्टम अपडेट और पैच से बच नहीं सकती है।

अनुरोध के अनुसार, मैं यहाँ अपना उत्तर जोड़ रहा हूँ। खुशी है कि यह काम करता है!


9

समाधान टैग के तहत आपके विकल्प फ़ाइल में दिए गए मानों wait_timeoutऔर connect_timeoutमापदंडों को बढ़ा रहा है [mysqld]

मुझे एक 400MB mysql बैकअप वसूल करना था और यह मेरे लिए काम करता था (नीचे मैंने जिन मूल्यों का उपयोग किया है वे थोड़े अतिरंजित हैं, लेकिन आपको यह बात मिलती है):

[mysqld]
port=3306
explicit_defaults_for_timestamp = TRUE
connect_timeout = 1000000
net_write_timeout = 1000000
wait_timeout = 1000000
max_allowed_packet = 1024M
interactive_timeout = 1000000
net_buffer_length = 200M
net_read_timeout = 1000000
set GLOBAL delayed_insert_timeout=100000

Blockquote


1
महान। इससे मुझे एक और त्रुटि प्राप्त करने में मदद मिलती है जिसे मैं हल कर सकता हूं :)
जुआरसेल 9'16

6

कुछ बातें यहाँ हो सकती हैं;

  • आपका INSERTसमय लंबा चल रहा है, और क्लाइंट डिस्कनेक्ट हो रहा है। जब यह फिर से जुड़ता है तो यह डेटाबेस का चयन नहीं करता है, इसलिए त्रुटि। यहां एक विकल्प यह है कि कमांड लाइन से अपनी बैच फ़ाइल चलाएं, और तर्कों में डेटाबेस का चयन करें, जैसे;

$ mysql db_name <source.sql

  • एक अन्य के माध्यम से phpया कुछ अन्य भाषा में अपनी कमांड चलाने के लिए है । प्रत्येक लंबे समय तक चलने वाले बयान के बाद, आप कनेक्शन को बंद और फिर से खोल सकते हैं, यह सुनिश्चित करते हुए कि आप प्रत्येक क्वेरी की शुरुआत में जुड़े हुए हैं।

उल्लेख के लायक एक और बात यह है कि मुझे sourceकमांड के तुरंत बाद त्रुटि मिलती है
bgcode

यदि आपको स्रोत कमांड के तुरंत बाद त्रुटि मिलती है, तो यह संभावना है कि MySQL क्वेरी के बारे में कुछ पसंद नहीं करता है। क्या आपने सामान्य लॉग की जाँच की है?
क्रिस हेनरी

मुझे यह पता लगाना है कि सामान्य लॉग को कैसे जांचना है .. एमएमपी पर इम और यह सुनिश्चित नहीं है कि यह डिफ़ॉल्ट रूप से लिखता है।
bgcode

मैं सिर्फ PHP क्वेरी और इसे ऊपर टुकड़ा करने की क्रिया के साथ इसे हल करने का विकल्प चुना।
bgcode

5

यदि आप मैक पर हैं और मेरी तरह काढ़ा के माध्यम से mysql स्थापित किया है, तो निम्नलिखित काम किया है।

  1. cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf

स्रोत: homebrew mysql के लिए, जहां my.cnf स्थापित है?

  1. जोड़ने max_allowed_packet=1073741824के लिए/usr/local/etc/my.cnf

  2. mysql.server restart


2

मुझे इस त्रुटि का सामना करना पड़ा जब मैं मैसकल क्लस्टर का उपयोग करता हूं, मुझे नहीं पता कि यह प्रश्न क्लस्टर उपयोग से है या नहीं। चूंकि त्रुटि बिल्कुल वैसी ही है, इसलिए मेरा समाधान यहां दें। यह त्रुटि हो रही है क्योंकि डेटा नोड अचानक दुर्घटनाग्रस्त हो जाते हैं। लेकिन जब नोड्स दुर्घटनाग्रस्त हो जाते हैं, तो आप अभी भी cmd का उपयोग करके सही परिणाम प्राप्त कर सकते हैं:

ndb_mgm -e 'ALL REPORT MEMORYUSAGE'

और mysqld भी सही ढंग से काम करता है। पहली बार में, मैं समझ नहीं सकता कि क्या गलत है। और लगभग 5 मिनट बाद, ndb_mgm परिणाम कोई डेटा नोड काम नहीं करता है। तब मुझे समस्या का एहसास हुआ। तो, सभी डेटा नोड्स को पुनरारंभ करने का प्रयास करें, फिर mysql सर्वर वापस आ गया है और सब कुछ ठीक है।

लेकिन एक बात मेरे लिए अजीब है, जब मैंने कुछ प्रश्नों के लिए mysql सर्वर खो दिया, तो जब मैं cmd ​​का उपयोग करता हूं, तो मैं show tablesअभी भी रिटर्न की तरह जानकारी प्राप्त कर सकता हूं 33 rows in set (5.57 sec), लेकिन कोई तालिका जानकारी प्रदर्शित नहीं होती है।


1

अमेज़न आरडीएस (यह मेरा मामला है) के लिए, आप max_allowed_packetबाइट्स में किसी भी संख्यात्मक मान के पैरामीटर मान को बदल सकते हैं जो आपके पास किसी भी सम्मिलित में सबसे बड़े डेटा के लिए समझ में आता है (उदाहरण के लिए: यदि आपके पास आपके प्रविष्टि में कुछ 50mb बूँद मान हैं, तो सेट करें max_allowed_packet64M = 67108864), एक नए या मौजूदा में parameter-group। फिर उस पैरामीटर-समूह को अपने MySQL उदाहरण पर लागू करें (उदाहरण को रिबूट करने की आवश्यकता हो सकती है)।


अगर आपका अमेजन RDS के साथ काम कर रहा है। आप RDS में वैश्विक मान सेट नहीं कर सकते हैं जैसे कि SebaGra इंगित करता है, यदि आप जाते हैं और अपने DB के कस्टम पैरामीटर समूह को संशोधित करते हैं, तो max_allowed_packet parameterइसे ढूंढें और इसे उचित आकार में सेट करें (या यदि आपके पास वास्तव में बड़ी बूँदें हैं तो इसे अधिकतम मूल्य 1073742424 पर सेट करें ) यह काम करना चाहिए।
G_Style

क्या आपको समान डेटासेट या पूरी तरह से यादृच्छिक लोड करते समय लगातार विफलता मिल रही थी? यह पूछना क्योंकि मेरे पास एक ही मुद्दा है लेकिन इसकी पूरी तरह से यादृच्छिक, 5 बार असफल हो जाएगी और फिर 5 वें पर काम करेगी। इसके अलावा, मेरी स्थानीय मशीन पर जाने और दृश्य स्टूडियो से चलने में मदद मिलती है, लेकिन मैं अभी भी हर बार एक समय में त्रुटि में चला जाऊंगा।
BilliD

0

यदि यह फिर से कनेक्ट हो रहा है और कनेक्शन 2 प्राप्त कर रहा है, तो सर्वर लगभग निश्चित रूप से दुर्घटनाग्रस्त हो गया है।

सर्वर व्यवस्थापक से संपर्क करें और समस्या का निदान करने के लिए उन्हें प्राप्त करें। कोई भी दुर्भावनापूर्ण SQL सर्वर को क्रैश नहीं करना चाहिए, और mysqldump का आउटपुट निश्चित रूप से नहीं होना चाहिए।

शायद यह मामला है कि सर्वर व्यवस्थापक ने कुछ बड़ी परिचालन त्रुटि की है, जैसे कि आर्किटेक्चर की एड्रेस-स्पेस सीमा से अधिक या आभासी मेमोरी क्षमता से अधिक के बफर आकार निर्दिष्ट करना। MySQL त्रुटि-लॉग में संभवतः कुछ प्रासंगिक जानकारी होगी; अगर वे वैसे भी सक्षम हैं तो वे इसकी निगरानी करेंगे।


0

यह एक दुर्लभ समस्या है, लेकिन मैंने इसे देखा है अगर किसी ने अपने DB को किसी अन्य सर्वर पर माइग्रेट करने के तरीके के रूप में संपूर्ण / var / lib / mysql निर्देशिका की प्रतिलिपि बनाई है। कारण यह काम नहीं करता है क्योंकि डेटाबेस लॉग फ़ाइलों का उपयोग करके चल रहा था। अगर कभी लॉग / var / log / mysql में लॉग होते हैं तो यह काम नहीं करता है। समाधान / var / log / mysql फ़ाइलों को भी कॉपी करना है।


0

Drupal 8 उपयोगकर्ताओं के लिए DB आयात विफलता के समाधान की तलाश में:

Sql डंप फ़ाइल के अंत में "webprofiler" तालिका में डेटा डालने की आज्ञा हो सकती है। मुझे लगता है कि कुछ डिबग लॉग फ़ाइल है और साइट के लिए वास्तव में महत्वपूर्ण नहीं है ताकि यह सब हटाया जा सके। मैंने LOCK TABLES और UNLOCK TABLES (और सब कुछ) सहित उन सभी आवेषणों को हटा दिया। यह sql फ़ाइल के बहुत नीचे है। समस्या यहाँ वर्णित है:

https://www.drupal.org/project/devel/issues/2723437

लेकिन उस टेबल को रौंदने के अलावा इसका कोई हल नहीं है।

BTW मैंने ऊपर दिए गए जवाबों से सभी समाधानों की कोशिश की और कुछ भी मदद नहीं की।


0

मैंने उपरोक्त सभी समाधानों की कोशिश की है, सभी विफल रहे।

मैंने -h 127.0.0.1डिफ़ॉल्ट का उपयोग करने के बजाय उपयोग करना समाप्त कर दिया var/run/mysqld/mysqld.sock


0

यह त्रुटि संदेश तब भी होता है जब आपने डंप में उपयोग किए जाने वाले से भिन्न COLLATION के साथ SCHEMA बनाया था। तो, अगर डंप शामिल हैं

CREATE TABLE `mytab` (
..
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

आपको इसे SCHEMA टकराव में भी प्रतिबिंबित करना चाहिए:

CREATE SCHEMA myschema COLLATE utf8_unicode_ci;

मैं स्कीमा में utf8mb4_general_ci का उपयोग कर रहा था, क्योंकि मेरी स्क्रिप्ट एक ताजा V8 इंस्टॉलेशन से आई थी, अब पुराने 5.7 पर एक डीबी को लोड करके दुर्घटनाग्रस्त हो गई और मुझे लगभग पागल कर दिया।

तो, शायद यह आपको कुछ निराशा के घंटे बचाने में मदद करता है ... :-)

(MacOS 10.3, mysql 5.7)


-1

यदि इस उत्तर में से कोई भी आपको समस्या का हल नहीं देता है, तो मैंने इसे टेबल से हटाकर और उन्हें इस तरह से स्वचालित रूप से बनाकर हल किया:

when creating the backup, first backup structure and be sure of add:
DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT
CREATE PROCEDURE / FUNCTION / EVENT
IF NOT EXISTS
AUTO_INCREMENT

तो बस अपने डीबी के साथ इस बैकअप का उपयोग करें और यह आपके द्वारा आवश्यक तालिकाओं को हटा देगा और पुनः बनाएगा।

तब आप केवल डेटा का बैकअप लेते हैं, और वही करते हैं, और यह काम करेगा।


-3

इस तरह mysql क्लाइंट का उपयोग करने के बारे में कैसे:

mysql -h <hostname> -u username -p <databasename> < file.sql

यह अभ्यस्त काम करता है यदि sql फ़ाइल si बहुत बड़ी है ... यही सवाल है।
3:30 पर lesolorzanov
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.