Come configurare un server MySql per accettare connessioni remote?


16

Sto installando un server MySql sul desktop Ubuntu. Potrei connettere MySql Query Browser ad esso quando si specifica Server Hostnameas localhost, ma quando lo sostituisco con l'IP della macchina smette di funzionare (anche se MySql Query Browser funziona nella stessa macchina).

Tutto quello che ho fatto finora è rimuovere iptables, ma sembra che non abbia nulla a che fare con esso.

Ecco il messaggio di errore

Impossibile connettersi all'host "192.168.0.2".

Errore MySQL n. 2003

Impossibile connettersi al server MySQL su "192.168.0.2" (111)

Fai clic sul pulsante "Ping" per vedere se c'è un problema di rete.

Il ping è ok, però

Risposte:


22

Dovrai associare il tuo mysqld a un IP diverso da 127.0.0.1.

Apri my.cnf (/etc/mysql/my.cnf di solito) e cambia la riga che dice

bind = 127.0.0.1

a qualunque indirizzo IP utilizzato dalla macchina per connettersi al mondo esterno. 0.0.0.0si lega a tutti gli indirizzi IP. Non dimenticare di riavviare mysqld dopo tale modifica.


ora ho ricevuto un errore diverso: Impossibile connettersi all'host "192.168.0.2". Errore MySQL n. 1130 L'host 'qualunque-vubuntu.local' non è autorizzato a connettersi a questo server MySQL
Jader Dias

user @ localhost e user @ <hostname> sono diversi. Devi aggiungere l'utente per poterti connettere da host remoti.
James,

Questo non è il problema. L'ho fatto e continuo a ricevere l'errore.
Cerin,

Dovrebbe essere bind-address?
Thomas Weller,


2

Diversi altri potenziali problemi spiegati qui:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/en /access-denied.html

Se si desidera concedere tutti i privilegi a tutti i database, provare

grant all on *.* to 'joe'@'%';

Tuttavia, prima di farlo, assicurati di avere un utente nel database "mysql" con "Host" impostato sul tuo indirizzo IP - nel mio caso, il mio IP qui a casa. Quindi l'utente "joe" può avere più di un record, uno per ogni IP da cui potrebbe chiamare. Per vedere cosa hai già dentro:

use mysql;
select Host, User, Password from user where user='joe';`

Nel mio caso, ora il mio utente aveva l'IP corretto ma mancava anche la password. Ho incollato la password (l'hash o qualcosa del genere) e questo ha risolto il mio particolare problema di connessione remota:

update user set Password='5493845039485' where user='joe';

Un'altra cosa, in my.cnf potresti voler impostare "port = 3306" o qualunque porta tu intenda utilizzare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.