Magento के MySQL की त्रुटि दूर हो गई है


14

मैं Magento CE 1.7.0.2 पर अजीब मुद्दों का भार रहा हूँ। सामान्य ऑपरेशन के दौरान, साइट कभी-कभी मैजेंटो एरर पेज ( आपके अनुरोध को संसाधित करने में त्रुटि हुई है ) को फ्रंटएंड और बैकएंड दोनों पर उत्पन्न करेगी । संबंधित रिपोर्ट को देखते हुए, मैं निम्नलिखित संदेश देखता हूं:

"SQLSTATE[HY000] [2006] MySQL server has gone away"

कभी-कभी, लेकिन अधिक शायद ही कभी, रिपोर्ट संदेश पढ़ेगा:

 Connection reset by peer

मैंने var> log> system.log को देखा है और MySQL has gone awayत्रुटि निम्नलिखित के साथ है:

Warning: PDO::__construct(): MySQL server has gone away  in /var/www/html/domain.com/live/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 129
Error while reading greeting packet. PID=1863  in /var/www/html/domain.com/live/lib/Zend/Db/Adapter/Pdo/Abstract.php on line 129

इसके अतिरिक्त, प्रत्येक अनुरोध पर निम्न त्रुटि भी हो रही है, साथ ही MySQL has gone awayत्रुटियां:

 Warning: include(File.php): failed to open stream: No such file or directory  in /var/www/html/domain.com/live/lib/Varien/Autoload.php on line 93
 Warning: include(): Failed opening 'File.php' for inclusion

मैंने अधिकांश लेखों को देखा है जिनके बारे में मैं पा सकता हूं और डेटाबेस मापदंडों के साथ छेड़छाड़ कर सकता हूं जब तक कि गायों के घर नहीं आए लेकिन त्रुटि बनी हुई है।

संकलक के बारे में एक और QnA का अनुसरण करने के बाद , मैं ध्यान देता हूं कि व्यवस्थापक पृष्ठ सिस्टम> उपकरण> संकलन पूरी तरह से खाली है। मुझे लगता है कि ये सभी संबंधित त्रुटियां हैं, लेकिन डिबगिंग या कारणों में कोई अंतर्दृष्टि इतनी मददगार होगी।

अगर यह असंगत है तो मैं माफी चाहता हूं; मैं लगभग 42 घंटों से जाग रहा हूं, इसलिए कृपया कोई स्पष्टीकरण मांगें। धन्यवाद।

-- अपडेट करें --

स्पष्टता के लिए मेरा सर्वर स्टैक:

PHP 5.5.4 (PHP-FPM)
Nginx 1.4.2
MySQL 5.5.33

-- अपडेट करें --

यह मेरे लिए होता है (कुछ नींद के बाद) जो मैंने कभी निर्दिष्ट नहीं किया - PHP कोडबेस और MySQL db अलग-अलग हार्डवेयर सर्वर पर हैं - यह जानना बहुत महत्वपूर्ण है कि क्या ya'll मेरी मदद करने जा रहे हैं !! मैं क्षमाप्रार्थी हूं।


1
क्या आप लगातार डेटाबेस कनेक्शन का उपयोग कर रहे हैं? यदि हां, तो उन्हें अक्षम करने का प्रयास करें। मैं यह देखने के लिए कि कहीं गलतियाँ हैं या यदि वास्तव में केवल कनेक्शन गिराया जा रहा है, तो यह देखने के लिए कि मैं mysql लॉग की जाँच करूँगा।
डेविडलगर

Thx David, MySQL लॉग्स को दबाते हैं और त्रुटि होने पर DB कभी हिट नहीं होता है। मैं लगातार कनेक्शन का उपयोग कर रहा था, अक्षम करने से मदद नहीं मिली :(
जोंगोसी

1
क्या आपने माना है कि कनेक्शन खराब है। उस त्रुटि का एक कारण यह है कि DB को कभी भी संदेश नहीं मिला। Mysqli फ़ंक्शन को कॉल करने के लिए local.xml से कनेक्शन जानकारी का उपयोग करके डीबगिंग का प्रयास करें। देखते हैं क्या होता है।
एसएच-

धन्यवाद, लगता है कि स्थानीय फ़ाइल को संपादित करने में मेरी समस्या तय हो गई है

जवाबों:


9

यह ज्यादातर नीचे दिए गए दो कारणों में से किसी के कारण होता है

  1. सर्वर ने समय समाप्त कर कनेक्शन बंद कर दिया।
    फिक्स: wait_timeoutअपने mysqld के my.cnf/my.ini कॉन्फ़िगरेशन फ़ाइल में चर बढ़ाने की कोशिश करें ।
  2. सर्वर ने एक गलत या बहुत बड़ा पैकेट गिरा दिया।
    ठीक: के मूल्य में वृद्धि से अधिक से अधिक पैकेट आकार सीमा को बढ़ाने max_allowed_packetमें my.cnf/my.ini फ़ाइल।

कृपया फाइलों में जांच करें कि क्या आप ऐसा कुछ पाने की कोशिश कर रहे हैं जो बहुत लंबा या अनुचित हो।


Thx अंशु, मैं MySQL क्वेरी लॉग का पालन कर रहा हूं और डेटाबेस कभी अनुरोध के साथ हिट नहीं होता है। इसके अलावा, अगर मैं सर्वर को रिबूट करता हूं, तो कभी-कभी सर्वर ऑनलाइन होने के 20 सेकंड के भीतर एक त्रुटि उत्पन्न हो सकती है - समय सीमा के लिए डिफ़ॉल्ट सेटिंग्स के लिए बहुत कम। मैंने max_allowed_packet2 जी और wait_timout86400 पर सेट किया , फिर भी कोई मदद नहीं मिली।
जोंगोशी

कृपया जांचें कि क्या डेटाबेस कनेक्शन उचित है, अपने ऐप / etc / local.xml फ़ाइल की जांच करें
अंशु मिश्रा

Thx अंशु, हाँ, यह सही है - कनेक्शन अनुरोधों के 68% के बारे में होता है
जोंगोसी

6

मसला हल हो गया! मदद के लिए सभी को धन्यवाद। यह वेब होस्ट के साथ एक हार्डवेयर फ़ायरवॉल मुद्दा था , भले ही वे हमारे द्वारा अक्षम किए गए थे।

जैसा कि 1 & 1 के सर्वर टीम द्वारा पुष्टि की गई है , हार्डवेयर फ़ायरवॉल सही तरीके से कॉन्फ़िगर किए गए थे, लेकिन वे फ़ाइल सर्वर और डीबी सर्वर के बीच लगभग 25% समय के दौरान गलत यातायात को गलत तरीके से रोक रहे थे ।

हमने इसके बजाय iptables कॉन्फ़िगर किया है और हार्डवेयर फ़ायरवॉल को पूरी तरह से बंद कर दिया है। अब 100% उपलब्धता


2
अरे बाप रे! छिटपुट फ़ायरवॉल ... इस तरह का मुद्दा है कि प्यार होगा। खुशी है कि तुम्हें इसका हल मिल गया। :)
davidalger 23

यहाँ एक ही समस्या है और ऐसा लगता है कि आपका समाधान हमारे लिए भी काम करेगा। 1 और 1 भी बात करते हैं। क्या सहायता ने आपको किसी भी तरह से मदद की? क्या मैं आपसे संपर्क कर सकता हूं? ट्विटर? फेसबुक? कृपया विवरण के लिए मेरी प्रोफ़ाइल देखें। धन्यवाद
webDEVILopers

2

मुझे Magento 2.1 के लिए एक ही समस्या का अनुभव हुआ और मेरे mysql त्रुटि लॉग ने "MySQL चले गए" प्रक्रिया के दौरान कई बार निम्न त्रुटि दिखाई।

...[Warning] File Descriptor 1228 exceeded FD_SETSIZE=1024

इस समस्या को संभावित रूप से हल करने के लिए, पहले उस open filesमूल्य की जाँच करें $ ulimit -n, जो मेरे मामले में था 256

दूसरे, अपने में सेक्शन के table_open_cache = {that ulimit -n value}तहत जोड़ें ।[mysqld]my.cnf

अब MySQL को पुनरारंभ करें और उम्मीद है कि आप वापस एक्शन में आ जाएंगे।

नोट: मैं Magento 2.1 को स्थानीय रूप से OS 7.1 El Capitan पर PHP 7.1 और MySQL 5.7.15 में Homebrew के साथ बना रहा हूं। लेकिन मुझे यकीन है कि यह समाधान पुराने या अलग सेटअप पर भी काम करेगा।


1

अपने Magento फ़ोल्डर में एप्लिकेशन / etc / local.xml फ़ाइल को संपादित करें, मेजबान के लिए प्रविष्टि की जगह 'लोकलहोस्ट' के बजाय '127.0.0.1' करें।


डेटाबेस एक अलग हार्डवेयर सर्वर पर है, इसलिए MySQL सर्वर का IP पता उपयोग किया जाता है।
जोंगोसी

1

2 सर्वरों के बीच एक बड़े डेटाबेस को स्थानांतरित करते समय एक ही त्रुटि का अनुभव।

मेरे स्थानीय (गंतव्य) सर्वर पर mysql कॉन्फ़िगरेशन फ़ाइल (/etc/mysql/my.cnf) में अस्थायी रूप से जोड़ने और mysql (सेवा mysql पुनरारंभ) को पुनरारंभ करने से मेरे लिए समस्या तय हो गई:

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