2014-05-19 26 views
7

मेरा अपाचे 80 के बजाय 8113 पोर्ट पर चल रहा है।सेंटोस में mysql की दूरस्थ पहुंच को कैसे सक्षम करें?

मैं अपने mysql डेटाबेस को दूरस्थ रूप से एक्सेस करना चाहता हूं। मैंने निम्नलिखित चरणों का प्रयास किया है।

Bind-address XXX.XX.XX.XXX in /etc/my.cnf 
Create Database 
and run the command 
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'IP' IDENTIFIED BY 'PASSWORD'; 

लेकिन कनेक्ट करने में सक्षम नहीं है। मैं कनेक्ट करने के लिए हेइडी एसक्यूएल का उपयोग कर रहा हूँ।

+0

आप MySQL नहीं अपाचे से कनेक्ट करने की जरूरत है, MySQL बंदरगाह पर में सुनता है ' डिफ़ॉल्ट रूप से 3306'। – fire

+1

मैं पोर्ट 3306 का उपयोग कर जुड़ा हुआ हूं। लेकिन कनेक्ट करने में असमर्थ। – Puneet

उत्तर

6

तो निम्नलिखित संपादित my.cnf कार्य करें:

[mysqld] 
user = mysql 
pid-file = /var/run/mysqld/mysqld.pid 
socket = /var/run/mysqld/mysqld.sock 
port = 3306 
basedir = /usr 
datadir = /var/lib/mysql 
tmpdir = /tmp 
language = /usr/share/mysql/English 
bind-address = xxx.xxx.xxx.xxx 
# skip-networking 

के बाद संपादित mysql में service mysqld restart

लॉगिन मारा और इस क्वेरी मारा:

GRANT ALL ON foo.* TO [email protected]'xxx.xxx.xxx.xxx' IDENTIFIED BY 'PASSWORD';

यह thats सुनिश्चित करें कि आपके IPtables 3306 से कनेक्शन की अनुमति देते हैं यदि निम्न नहीं डालते हैं:

iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT

iptables -A OUTPUT -i lo -p tcp --sport 3306 -j ACCEPT

+15

अंतिम आदेश काम नहीं करता है। यह कहता है 'iptables v1.4.7: OUTPUT के साथ -i का उपयोग नहीं कर सकता' – rjurney

+1

पूरी तरह से -i पैरामीटर को हटाएं क्योंकि इसे OUTPUT नियम –

9

बाइंड-पता XXX.XX.XX.XXX में /etc/my.cnf

टिप्पणी पंक्ति:

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

या

स्किप-बाहरी-लॉकिंग

संपादन के बाद mysql में service mysqld restart

लॉगिन मारा और इस क्वेरी मारा:

GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'%' IDENTIFIED BY 'password'; 

FLUSH PRIVILEGES; 
quit; 

फ़ायरवॉल नियम जोड़ने:

iptables -I INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT 
+0

पर आवश्यक नहीं है, यह मेरे लिए काम करता है, धन्यवाद –

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