2011-03-07 12 views
6
  • सर्वर आईपी: 172.16.1.169
  • mysql उपयोगकर्ता नाम: जड़
  • पासवर्ड: xxxxxxxxxx
  • डेटाबेस नाम: उदाहरण

मैं एक क्लाइंट से डेटाबेस तक पहुंचने की कोशिश कर रहा हूं (आईपी 172.16.0.114)। सर्वर और क्लाइंट दोनों लिनक्स के फेडोरा वितरण चला रहे हैं। सर्वर और क्लाइंट दोनों के लिए किन सेटिंग्स को कॉन्फ़िगर करने की आवश्यकता है, और उन्हें क्या सेट किया जाना चाहिए? मैं एक विशिष्ट डेटाबेस (यहां, "उदाहरण") तक कैसे पहुंच सकता हूं? मैंने कोशिश की, लेकिन मैं एक त्रुटि मिली:समस्याएं: त्रुटि 2003 (HY000)

ERROR 2003 (HY000): Can't connect to MySQL server on '172.16.1.169'.

+0

आपके पास एक अलग नेटवर्क हैं जैसे: 172.16.0। * और 172.16.1। *। क्या आप 172.16.0.114 से 172.16.1.169 तक पिंग कर सकते हैं? – Arman

+0

वही नेटवर्क .... मैं पिंग कर सकता हूं ... – Jagan

+1

यहां वही समस्या है। [guido का जवाब] [1] मेरी समस्या का समाधान करें। Thx। [1]: http://stackoverflow.com/a/6897627/2760065 – robersonfox

उत्तर

8

कि त्रुटि संदेश ग्राहक (नहीं सर्वर) क्योंकि सर्वर से कनेक्शन का प्रयास किया लेकिन कर दिया गया है सर्वर संपर्क नहीं हो सका द्वारा उत्पन्न होता है।

है कि करने के लिए विभिन्न संभव कारण हैं:

1) जाँच करें कि mysqld सर्वर पर चल रहा है:

root  2435 2342 0 15:49 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/var/ --user=mysql 
mysql  2480 2435 0 15:49 pts/1 00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/var/ --user=mysql ... 

डेमॉन चलाने के लिए:

ps -ef | grep mysqld 

की तरह कुछ लौट जाना सेवा, रेडहाट/फेडोरा/सेंटोस पर चलती है:

service mysqld start 

या Fedora रिलीज> = 16 है, जो systemd पर निर्भर करता है पर:

systemctl start mysqld.service 

और सिस्टम बूट पर डेमॉन ऑटो स्टार्टअप को सक्षम करने के लिए:

systemctl enable mysqld.service 

2) बंदरगाह जाँच जिस पर mysqld है सर्वर पर चल रहा:

netstat -lnp | grep mysql 

लौटना चाहिए:

tcp  0  0 0.0.0.0:3306 0.0.0.0:* LISTEN 2480/mysqld 
unix 2  [ ACC ]  STREAM  LISTENING  8101 2480/mysqld /tmp/mysql.sock 

बाद वाला स्थानीय कनेक्शन के लिए सॉकेट है, नेटवर्किंग के लिए पहला टीसीपी पोर्ट (डिफ़ॉल्ट 3306)। यदि पोर्ट डिफ़ॉल्ट पोर्ट नहीं है, तो आपको क्लाइंट पर कनेक्शन पोर्ट सेट करना होगा। यदि mysql ग्राहक का उपयोग:

mysql dbname -uuser -ppasswd -P<port> ... 

3) एक अलग शुद्ध पते पर किया जा रहा है, जाँच करें कि सर्वर शुद्ध addrees अपने से कनेक्ट कर रहे हैं के लिए सुनता है: लाइन के लिए /etc/my.cnf खोज फ़ाइल में:

bind_address=127.0.0.1 

यदि पता 127.0.0.1 है तो स्थानीय कनेक्शन की अनुमति है; अगर यह 172.16.1.0 था, तो आप 172.16.2 से कनेक्ट नहीं हो सके।xxx

4) सर्वर पर जांचें कि कोई फ़ायरवॉल चल रहा है और mysql पोर्ट से कनेक्शन अवरुद्ध नहीं है (3306 डिफ़ॉल्ट पोर्ट है); यह एक redhat/Fedora/centos

service iptables status 
1
  1. ओपन MySQL config फ़ाइल को चलाने के

    अगर sudo vim my.cnf

  2. सुनिश्चित करें कि निम्न टिप्पणी की कर रहे हैं।

    # छोड़-बाह्य-लॉक

    # छोड़ नेटवर्किंग

    # बाँध-पता = xx.xx.xx.xx

    सहेजें और बाहर निकलें

  3. पुनः प्रारंभ mysql सेवा

+3

धन्यवाद, यह काम किया! क्या आप समझा सकते हैं कि ये रेखाएं क्या बदलती हैं? –

0

मुझे लगता है कि गंतव्य mysql सर्वर एक अलग पोर्ट का उपयोग कर सकता है। आपको पहले सही पोर्ट ढूंढना होगा।

आपके द्वारा सही बंदरगाह आप इस आदेश का उपयोग करके कि mysql सर्वर से कनेक्ट कर सकते हैं:

mysql -h 172.16.1.169 -P (port) -u root -p (password) 
-1

MySQL कॉन्फ़िग फ़ाइल (/etc/mysql/my.cnf) टिप्पणी '# बाँध-संबोधन में = 127.0.0.1 '

MySQL सेवा को सहेजें और पुनरारंभ करें।

+0

यह इस प्रश्न का समाधान है। मैं उबंटू 14.04 सर्वर, mysql 5.6 पर एक ही समस्या थी। मैं टिप्पणी '# बाइंड-एड्रेस = 127.0.0.1' टिप्पणी करता हूं और यह मेरे लिए काम करता है – Ramil

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