Per esporre MySQL a qualcosa di diverso da localhost si dovrà avere la seguente riga
per MySQL versione 5.6 e di seguito
commentate in /etc/mysql/my.cnf
e assegnato al proprio indirizzo IP del computer e non loopback
per MySQL versione 5.7 e superiori
commentate in /etc/mysql/mysql.conf.d/mysqld.cnf
e assegnato al vostro indirizzo IP dei computer e non loopback
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Oppure aggiungi un bind-address = 0.0.0.0
se non si desidera specificare l'IP
Quindi arrestare e riavviare MySQL con la nuova voce my.cnf. Una volta eseguito, vai al terminale e inserisci il seguente comando.
lsof -i -P | grep :3306
Questo dovrebbe tornare qualcosa di simile con il tuo attuale IP del xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Se la dichiarazione di cui sopra restituisce correttamente sarà quindi in grado di accettare utenti remoti. Tuttavia, per un utente remoto di connettersi con i privilegi corretti è necessario disporre di tale utente creato sia nel localhost e '%' 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 si dispone dello stesso utente creato come sopra, all'accesso locale è possibile ereditare i privilegi di localhost di base e avere problemi di accesso. Se si desidera limitare l'accesso a myuser, è necessario leggere la sintassi dell'istruzione GRANT HERE Se si riesce a risolvere il problema e si riscontrano ancora problemi, pubblicare un output di errore aggiuntivo e le righe appropriate di my.cnf.
NOTA: Se lsof non viene restituito o non viene trovato, è possibile installarlo HERE in base alla propria distribuzione Linux. Non hai bisogno di lsof per far funzionare le cose, ma è estremamente utile quando le cose non funzionano come previsto.
quale versione di MySQL stai usando? – Steve
Versione server: 5.5.29-0ubuntu0.12.10.1 (Ubuntu) –
cosa restituisce questo comando? ubuntu ~ $ sudo lsof -i -P | grep: 3306 – apesa