Abilita accesso remoto (Concedi) Home / Tutorial / Mysql / Abilita accesso remoto (Concedi) Se provi a connetterti al tuo server mysql da una macchina remota e ti imbatti in un errore come di seguito, questo articolo fa per te.
ERRORE 1130 (HY000): l'host '1.2.3.4' non può connettersi a questo server MySQL
Cambia configurazione mysql
Inizia con la modifica del file di configurazione mysql
vim /etc/mysql/my.cnf
Commenta le seguenti righe.
#bind-address = 127.0.0.1
#skip-networking
Se non trovi la linea skip-networking, aggiungila e commentala.
Riavvia il server mysql.
~ /etc/init.d/mysql restart
Cambia privilegio GRANT
Potresti essere sorpreso di vedere anche dopo le modifiche di cui sopra che non stai ottenendo l'accesso remoto o l'accesso, ma non riesci a tutti i database.
Per impostazione predefinita, il nome utente e la password mysql in uso sono autorizzati ad accedere a mysql-server localmente. Quindi è necessario aggiornare il privilegio.
Esegui un comando come di seguito per accedere da tutte le macchine. (Sostituisci USERNAME
e PASSWORD
con le tue credenziali.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Esegui un comando come di seguito per consentire l'accesso da un IP specifico. (Sostituisci USERNAME
e PASSWORD
con le tue credenziali.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Puoi sostituire 1.2.3.4 con il tuo IP. È possibile eseguire il comando sopra più volte per concedere l'accesso da più IP.
Puoi anche specificare un accesso separato USERNAME
e PASSWORD
per remoto.
Puoi controllare il risultato finale:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
Infine, potresti anche dover eseguire:
mysql> FLUSH PRIVILEGES;
Test di connessione
Dal terminale / dalla riga di comando:
mysql -h HOST -u USERNAME -pPASSWORD
Se ottieni una shell mysql, non dimenticare di eseguire show database; per verificare se si dispone dei privilegi giusti da macchine remote.
Suggerimento bonus: revoca l'accesso
Se si accede accidentalmente a un utente, è meglio avere a portata di mano l'opzione di revoca.
Di seguito verranno revocate tutte le opzioni per USERNAME da tutte le macchine:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
Se vedi il privilegio USAGE dopo aver eseguito il comando REVOKE, va bene. È buono come nessun privilegio. Non sono sicuro che possa essere revocato.