सॉकेट '/var/run/mysqld/mysqld.sock' (2) के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता है)


9

मेरे पास dosercot + postfix + mysql का उपयोग करके मेलस्वर कॉन्फिगर है और यह सर्वर (Ubuntu Ubuntu) में रननिग फाइन था। लेकिन पिछले सप्ताह के दौरान इसने सही तरीके से काम करना बंद कर दिया। यह ईमेल नहीं भेजता है। जब मैं telnet localhost smtpसफलता से जुड़ने की कोशिश करता हूं, लेकिन जब मैं करता हूं mail from:<steve@example.com>और एंटर करता हूं तो यह हैंग हो जाता है, कुछ नहीं होता है।

/var/log/mail.logफ़ाइल की समीक्षा करने के बाद मुझे पता चला है कि संभवतः (99%) समस्या पोस्टफिक्स पर है जब वह MySQL सर्वर से जुड़ने की कोशिश कर रहा है। यदि आप नीचे दी गई लॉग फ़ाइल देखते हैं तो आप देख सकते हैं कि यह कहती है Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Nov 14 21:54:36 ns1 dovecot: dovecot: Killed with signal 15 (by pid=7731 uid=0 code=kill)
Nov 14 21:54:36 ns1 dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Nov 14 21:54:36 ns1 dovecot: auth-worker(default): mysql: Connected to localhost (mailserver)
Nov 14 21:54:44 ns1 postfix/postfix-script[7753]: refreshing the Postfix mail system
Nov 14 21:54:44 ns1 postfix/master[1670]: reload -- version 2.7.0, configuration /etc/postfix
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: process /usr/lib/postfix/trivial-rewrite pid 7759 exit status 1
Nov 14 21:54:53 ns1 postfix/cleanup[7397]: warning: problem talking to service rewrite: Connection reset by peer
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Nov 14 21:54:53 ns1 postfix/smtpd[7071]: warning: problem talking to service rewrite: Success

मैंने कोशिश की netstat -ln | grep mysqlऔर वह लौट आया

unix 2 [ ACC ] STREAM LISTENING 5817 /var/run/mysqld/mysqld.sock

/etc/postfix/mysql-virtual-alias-maps.cfफ़ाइल की सामग्री यहाँ है:

user = stevejobs
password = apple
hosts = localhost
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

यहां मैंने बदलने की कोशिश की hosts = 127.0.0.1लेकिन यह कहता हैwarning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

इसलिए, मैं खो गया हूं और यह नहीं जानता कि समस्या को हल करने के लिए और कहां बदलना है। किसी भी मदद की बहुत सराहना की जाएगी।

धन्यवाद।

EDIT 1

जब मैं netstat -na करता हूं तो मैं देखता हूं कि mysql न तो लोकलहोस्ट से जुड़ा हुआ है और न ही 127.0.0.1। क्या यह समस्या भी हो सकती है?

bakhtiyor@ns1:~$ netstat -na | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN   

जवाबों:


6

यह बहुत ही बेवकूफी भरा लगता है लेकिन मैंने समस्या हल कर दी है। मैंने ध्यान नहीं दिया कि किसी सिस्टम एडमिनिस्ट्रेटर ने किसी तरह फ़ायरवॉल पर सभी मेजबानों के लिए 3306 पोर्ट को ब्लॉक कर दिया था, और इसलिए मैं mysql से कनेक्ट नहीं कर सका। उस प्रतिबंध को हटाने के बाद मैं बिना किसी समस्या के mysql से जुड़ने में सक्षम था। आपके सुझाव और मदद के लिए धन्यवाद।


1
कैसे हटाएं प्रतिबंध?
ग्रीन

मैं टीसीपी के माध्यम से कनेक्ट करना चाहता हूं, सॉकेट के माध्यम से नहीं। मैं उसे कैसे कर सकता हूँ? धन्यवाद।
कृष्णलाल

हाय @ग्रीन, किसी भी समाधान यू पर प्रतिबंध हटाने के बारे में पता चला या यह कैसे पता करें कि क्या पोर्ट 3306 पर प्रतिबंध है?
सुशीवम

3

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। "होस्ट = लोकलहोस्ट" को "होस्ट = 127.0.0.1" में बदलना और उसी पते पर बाइंड-एड्रेस सेट करना मेरे लिए इसे निर्धारित करता है (किसी कारण से 0.0.0.0 पर बाइंड-एड्रेस सेट किया गया था)


मैं 0.0.0.0 के रूप में बाइंड-एड्रेस छोड़ने में सक्षम था (जो मैं गैलेरा के साथ कर रहा था) के लिए आवश्यक था, और टीसीपी का उपयोग करने के लिए इसे "होस्ट = 127.0.0.1: 3306" बदल दिया। मैंने इसके बाद पोस्टफिक्स चेरोट में सॉकेट को बांधने के बजाय इस पर निर्णय लिया, जैसा कि दूसरों ने किया है।
सीन रिफ़्शिनडर

3

क्या आपने Mysql सर्वर से कनेक्ट करने का प्रयास किया है?

mysql -u username -p

इसके अलावा, आप /etc/mysql/my.cnf में दिए गए पते को 127.0.0.1 पर बदलकर SQL को पुनः आरंभ करने का प्रयास कर सकते हैं

# /etc/mysql/my.cnf
bind-address = 127.0.0.1

मैंने आप सभी को कहा था और कोई परिणाम नहीं
बख्तियार

मेरा मतलब है कि मैं mysql को mysql -u यूजरनेम -p का उपयोग करके कनेक्ट कर सकता हूं
Bakhtiyor

"
My.cnf

2

मैं सिर्फ एक कंपनी के कंप्यूटर पर यही त्रुटि प्राप्त कर रहा था।

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

जब मुझे ssh के माध्यम से X-windows प्रोग्राम चलाने की कोशिश की गई तो मुझे भी यह त्रुटि हो रही थी:

GConf Error: Failed to contact configuration server; 
some possible causes are that you need to enable TCP/IP networking for ORBit,
or you have stale NFS locks due to a system crash

मुझे पता है कि मेरे पास एक रूट फाइल सिस्टम था जो पूरी तरह से भरा हुआ था, जिसमें कोई मुफ्त डिस्क स्थान नहीं था, इसलिए मेरा सिस्टम बहुत सारी आवश्यक फाइलें नहीं लिख सका। मुझे कई तरह के कार्यक्रमों से संबंधित, सभी प्रकार की त्रुटियाँ मिल रही थीं। (GDM के माध्यम से लॉग इन नहीं किया जा सका, GDM वॉलपेपर काला हो गया, gconf लॉक फ़ाइल त्रुटियाँ, आदि ...)

सभी मैंने किया था इस सरल कमांड को रूट विभाजन में 400 एमबी से अधिक फ़ाइलों से छुटकारा पाने के लिए, जिनकी अब आवश्यकता नहीं थी।

sudo apt-get autoremove

इससे मेरी रूट फाइल सिस्टम को सांस लेने की जगह मिल गई जिसकी उसे जरूरत थी। अब सब कुछ बढ़िया चलता है। लगता है कि 10 जीबी रूट डायरेक्टरी उबंटू अपडेट के दो साल के लायक नहीं है।

अगर किसी को परवाह है, तो सिस्टम उबंटू 10.04 से चल रहा है क्योंकि यह बाहर आया था। सिस्टम सप्ताह में कम से कम एक बार अपडेट होता है। आज की तारीख 9-6-2012 है, इसलिए यह लगभग 2 1/2 साल की अपडेट है।


जब आपकी समस्या का स्थान हो, तो मैं यह भी
पूछता

अंतरिक्ष मुद्दे को इंगित करने के लिए +1 - इससे मेरी समस्या हल हो गई।
युवल

1

आखिरकार किसने मेरी मदद की (हटाने नहीं!) सभी apt- प्राप्त पैकेज mysql से संबंधित थे, सिवाय इसके libmysqlclient16कि डी-इंस्टॉल स्थिति में था (निश्चित नहीं कि वह क्या है)।

तो, बस करो:

dpkg --get-selections | grep mysql

और फिर:

sudo apt-get purge <package_name>

आम से शुरू करें फिर क्लाइंट और फिर सर्वर पर जाएं।


मुझे नहीं लगता कि यह उत्तर सहायक है। समस्या अवरुद्ध 3306 पोर्ट थी, टूटी हुई MySQL पैकेज नहीं।
नेफांटे

इस आदेश को किसी भी पैकेज से हटा दिया जाएगाlibmysqlclientXX
krisanalfa

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