2014-05-19 7 views
7

Il mio apache è in esecuzione sulla porta 8113 anziché 80.Come abilitare l'accesso remoto di mysql in centos?

Desidero accedere al mio database mysql da remoto. Ho provato a seguire i passaggi.

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

ma non in grado di connettersi. Sto usando heidi sql per la connessione.

+0

È necessario connettersi a MySQL non Apache, MySQL ascolta in sulla porta ' 3306' per impostazione predefinita. – fire

+1

Sono connesso tramite la porta 3306. Ma non riesco a connettermi. – Puneet

risposta

6

quindi effettuare le seguenti operazioni di modifica 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 

dopo modifica ha colpito service mysqld restart

login in mysql e ha colpito questa query:

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

Ecco fatto assicurarsi che il proprio iptables consente la connessione da 3306 se non si inserisce quanto segue:

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

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

+15

L'ultimo comando non funziona. Dice "iptables v1.4.7: non posso usare -i con OUTPUT" – rjurney

+1

Rimuovere completamente il parametro -i poiché non è necessario nella regola OUTPUT –

9

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

riga di commento:

saltare-networking

o

skip-external-locking

dopo modifica colpito service mysqld restart

login in mysql e ha colpito questa query:

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

FLUSH PRIVILEGES; 
quit; 

aggiungere regola del firewall:

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

ha funzionato per me, grazie –