2014-05-19 12 views
7

Mój apache działa na porcie 8113 zamiast 80.Jak włączyć zdalny dostęp do mysql w centach?

Chcę uzyskać zdalny dostęp do mojej bazy danych MySQL. Próbowałem wykonać następujące kroki.

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

Nie można się połączyć. Używam heidi sql do łączenia.

+0

trzeba podłączyć do MySQL nie Apache, MySQL słucha na porcie ' 3306' domyślnie. – fire

+1

Jestem podłączony za pomocą portu 3306. Ale nie można się połączyć. – Puneet

Odpowiedz

6

tak zrobić następujące edycji 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 

po edycja hit service mysqld restart

logowanie do mysql i uderzyć to zapytanie:

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

ów to upewnić się, że iptables zezwalają na połączenie z 3306, jeśli nie wstawiono:

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

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

+15

Ostatnie polecenie nie działa. Mówi "iptables v1.4.7: Nie można użyć -i z OUTPUT" – rjurney

+1

Usunąć parametr -i całkowicie, ponieważ nie jest potrzebny na zasadzie OUTPUT –

9

Bind-adres XXX.XX.XX.XXX w /etc/my.cnf

komentarz linia:

skip-networking

lub

pominięcie zewnętrznego blokowania

po edycji hit service mysqld restart

logowanie do mysql i uderzyć to zapytanie:

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

FLUSH PRIVILEGES; 
quit; 

Dodaj regułę zapory:

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

to działało dla mnie, dziękuję –

Powiązane problemy