2014-05-19 5 views
7

Mein Apache läuft auf 8113 Port anstelle von 80.Wie aktiviert man den Fernzugriff von MySQL in Centos?

Ich möchte remote auf meine MySQL-Datenbank zugreifen. Ich habe folgende Schritte versucht.

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'; 

Aber nicht in der Lage zu verbinden. Ich verwende heidi sql, um mich zu verbinden.

+0

Sie müssen MySQL nicht Apache, MySQL lauscht auf Port anschließen ' 3306' standardmäßig. – fire

+1

Ich bin über Port 3306 verbunden. Aber keine Verbindung herstellen. – Puneet

Antwort

6

so gehen Sie wie folgt bearbeiten 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 

nach bearbeiten Hit service mysqld restart

Login in mysql und schlagen diese Abfrage:

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

das ist es sicher, dass Ihre iptables erlauben Verbindung von 3306, wenn nicht das folgende:

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

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

+15

Der letzte Befehl funktioniert nicht. Es heißt 'iptables v1.4.7: Kann nicht -i mit OUTPUT' verwenden – rjurney

+1

Entfernen Sie den Parameter -i vollständig, da es nicht auf der OUTPUT-Regel benötigt wird –

9

Bind-Adresse XXX.XX.XX.XXX in /etc/my.cnf

Kommentarzeile:

skip-networking

oder

überspringen-externe-Verriegelung

nach bearbeiten Hit service mysqld restart

Login in mysql und schlagen diese Abfrage:

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

FLUSH PRIVILEGES; 
quit; 

Firewall-Regel hinzufügen:

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

es funktionierte für mich, danke –

Verwandte Themen