Come permettere la connessione remota a mysql

Ho installato MySQL Community Edition 5.5 sulla mia macchina locale e voglio permettere connessioni remote in modo da potermi connettere da fonti esterne.

Come posso farlo?

Soluzione

Questo è permesso di default su MySQL.

Ciò che è disabilitato di default è l'accesso remoto root. Se vuoi abilitarlo, esegui questo comando SQL localmente:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

E poi trova la seguente linea e commentala nel tuo file my.cnf, che di solito si trova in /etc/mysql/my.cnf sui sistemi Unix/OSX. In alcuni casi la posizione del file è /etc/mysql/mysql.conf.d/mysqld.cnf).

Se è un sistema Windows, puoi trovarlo nella directory di installazione di MySQL, di solito qualcosa come C:\Program Files\MySQL\MySQL Server 5.5\ e il nome del file sarà my.ini.

Cambia la linea

 bind-address = 127.0.0.1

a

 #bind-address = 127.0.0.1

E riavvia il server MySQL (Unix/OSX, e Windows) perché le modifiche abbiano effetto.

Commentari (27)

Nel mio caso stavo cercando di connettermi a un server mysql remoto su cent OS. Dopo aver provato un sacco di soluzioni (concedendo tutti i privilegi, rimuovendo i binding ip, abilitando la rete) il problema non è stato ancora risolto.

Mentre cercavo varie soluzioni, mi sono imbattuto in iptables, che mi ha fatto capire che la porta 3306 di mysql non accettava connessioni.

Ecco una piccola nota su come ho controllato e risolto questo problema.

  • Controllare se la porta accetta connessioni:

telnet (ip del server mysql) [portNo]

/pre>

  • Aggiungere la regola della tabella ip per permettere le connessioni sulla porta:

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT

;

  • Non lo raccomanderei per l'ambiente di produzione, ma se il vostro iptables non è configurato correttamente, aggiungere le regole potrebbe non risolvere comunque il problema. In tal caso si dovrebbe fare quanto segue:

service iptables stop

/pre>

Spero che questo aiuti.

Commentari (0)

Se il tuo processo server MySQL è in ascolto solo su 127.0.0.1 o ::1 allora non sarai in grado di connetterti da remoto. Se hai un'impostazione bind-address in /etc/my.cnf questo potrebbe essere la fonte del problema.

Dovrete anche aggiungere i privilegi per un utente non localhost.

Commentari (2)