Mysql
 sql >> Database >  >> RDS >> Mysql

Connessioni remote Mysql Ubuntu

Per esporre MySQL a qualcosa di diverso da localhost dovrai avere la seguente riga

Per MySQL versione 5.6 e precedenti

senza commenti in /etc/mysql/my.cnf e assegnato al tuo computer l'indirizzo IP e non il loopback

Per MySQL versione 5.7 e successive

senza commento in /etc/mysql/mysql.conf.d/mysqld.cnf e assegnato al tuo computer l'indirizzo IP e non il loopback

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

Oppure aggiungi un bind-address = 0.0.0.0 se non vuoi specificare l'IP

Quindi arresta e riavvia MySQL con la nuova voce my.cnf. Una volta eseguito vai al terminale e inserisci il seguente comando.

lsof -i -P | grep :3306

Dovrebbe tornare qualcosa del genere con il tuo IP effettivo nelle xxx

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Se l'istruzione di cui sopra viene restituita correttamente, sarai quindi in grado di accettare utenti remoti. Tuttavia, affinché un utente remoto si connetta con i privilegi corretti, è necessario che quell'utente sia stato creato sia in localhost che in '%' come in.

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

poi,

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

e infine,

FLUSH PRIVILEGES; 
EXIT;

Se non hai lo stesso utente creato come sopra, quando accedi localmente potresti ereditare i privilegi di base localhost e avere problemi di accesso. Se si desidera limitare l'accesso di myuser, è necessario leggere la sintassi dell'istruzione GRANT QUI Se riesci a superare tutto questo e hai ancora problemi, pubblica un output di errore aggiuntivo e le righe appropriate my.cnf.

NOTA:se lsof non ritorna o non viene trovato, puoi installarlo QUI in base alla tua distribuzione Linux. Non hai bisogno di lsof per far funzionare le cose, ma è estremamente utile quando le cose non funzionano come previsto.

AGGIORNAMENTO:anche dopo aver aggiunto/modificato il bind-address in my.cnf non ha funzionato, quindi vai a cambiarlo nel punto in cui è stato originariamente dichiarato:

/etc/mysql/mariadb.conf.d/50-server.cnf