Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

max_allowed_packet पैरामीटर के साथ भी mysqldump का उपयोग करते समय mysql से कनेक्शन खो जाना

--quick जोड़ने का प्रयास करें आपके mysqldump . का विकल्प आज्ञा; यह बड़ी टेबल के साथ बेहतर काम करता है। यह पूरी तालिका को खिसकाने, फिर उसे लिखने के बजाय परिणामसेट से आउटपुट तक पंक्तियों को स्ट्रीम करता है।

 mysqldump -uroot -h my.host -p'mypassword' --quick --max_allowed_packet=512M db_name table_name | \
 gzip  > dump_test.sql.gz

आप --compress जोड़ने का भी प्रयास कर सकते हैं आपके mysqldump कमांड का विकल्प। इससे यह आपके MySQL सर्वर पर अधिक नेटवर्क-अनुकूल संपीड़ित कनेक्शन प्रोटोकॉल का उपयोग करता है। ध्यान दें कि आपको अभी भी gzip . की आवश्यकता है पाइप; MySQL के कंप्रेस्ड प्रोटोकॉल के कारण डंप mysqldump से बाहर नहीं आता है संकुचित।

यह भी संभव है कि सर्वर mysqldump . से अपने कनेक्शन का समय समाप्त कर रहा हो ग्राहक। आप टाइमआउट अवधि को रीसेट करने का प्रयास कर सकते हैं। किसी अन्य माध्यम से अपने सर्वर से कनेक्ट करें और इन प्रश्नों को जारी करें, फिर अपना mysqldump run चलाएं नौकरी।

ये टाइमआउट को एक कैलेंडर दिन पर सेट करते हैं।

    SET GLOBAL wait_timeout=86400;
    SET GLOBAL interactive_timeout=86400;

अंत में, यदि आपका सर्वर आपकी मशीन (राउटर और फायरवॉल के माध्यम से) से बहुत दूर है, तो कुछ mysqldump को बाधित कर सकता है। का कनेक्शन। कुछ अवर राउटर और फायरवॉल में NAT (नेटवर्क एड्रेस ट्रांसलेशन) सेशन की समय सीमा होती है। जब वे उपयोग में हों, तो उन्हें उन सत्रों को जीवित रखना चाहिए, लेकिन कुछ नहीं। या हो सकता है कि आप बाहरी कनेक्शन के लिए अपनी कंपनी द्वारा कॉन्फ़िगर की गई समय या आकार सीमा को पूरा कर रहे हों।

सर्वर के करीब एक मशीन में लॉग इन करने और mysqldump running चलाने का प्रयास करें उस पर। फिर अपनी gz फ़ाइल को अपनी मशीन पर कॉपी करने के लिए किसी अन्य माध्यम (sftp?) का उपयोग करें।

या, आपको इस फ़ाइल के डंप को खंडित करना पड़ सकता है। आप ऐसा कुछ कर सकते हैं (डीबग नहीं किया गया)।

mysqldump  -uroot -h my.host -p'mypassword'  \ 
          db_name table_name --skip-create-options --skip-add-drop-table \
          --where="id>=0 AND id < 1000000" | \
          gzip....

फिर इन पंक्तियों के साथ इसे दोहराएं।

          --where="id>=1000000 AND id < 2000000" | \

          --where="id>=2000000 AND id < 3000000" | \
          ...

जब तक आप सभी पंक्तियों को प्राप्त नहीं कर लेते। गर्दन में दर्द, लेकिन यह काम करेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. c3p0 प्रतीक्षा में लटकता है हाइबरनेट के साथ उपलब्ध है

  2. किसी अन्य क्वेरी में एक क्वेरी परिणाम का उपयोग करना

  3. MySQL- परिकलित कॉलम पर ऑर्डर करते समय प्रदर्शन

  4. MySQL उन पंक्तियों का चयन करें जहां टाइमस्टैम्प कॉलम अभी और 10 मिनट पहले के बीच है

  5. डेटटाइम द्वारा एसक्यूएल ऑटो-इन्क्रीमेंट