Com corregir l'ERROR 1130 (HY000): l'amfitrió no té permís per connectar-se a aquest servidor MySQL


En aquest article ràpid, aprendràs a resoldre l'error \ERROR 1130 (HY000): l'host x.x.x.x no pot connectar-se a aquest servidor MySQL en el desplegament de la base de dades MySQL/MariaDB en un sistema Linux. Aquest és un dels comuns. errors de connexió a la base de dades remota trobats pels usuaris.

  • IP del servidor d'aplicacions: 10.24.96.5
  • IP del servidor de bases de dades: 10.24.96.6

Ens hem trobat amb l'error en provar la connexió de la base de dades d'un dels nostres servidors d'aplicacions a un servidor de bases de dades, utilitzant el client mysql tal com es mostra.

# mysql -u database_username -p -h 10.24.96.6

L'error indica que l'amfitrió 10.24.96.5 des del qual es connecta l'usuari de la base de dades no té permís per connectar-se al servidor MySQL. En aquest cas, hem de fer alguns canvis al servidor de bases de dades per permetre que l'usuari es connecti de forma remota.

Al servidor de bases de dades, hem de comprovar l'amfitrió des del qual l'usuari anterior té permís per connectar-se.

# mysql -u root -p

Executeu les ordres SQL següents per comprovar l'amfitrió de l'usuari:

MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

A partir de la sortida de l'ordre, l'usuari només pot connectar-se al servidor de la base de dades des del localhost. Per tant, hem d'actualitzar els amfitrions de l'usuari de la següent manera.

Executeu la següent comanda GRANT per habilitar l'accés MySQL per a l'usuari remot des d'un host remot. Assegureu-vos de substituir \10.24.96.6 per l'adreça IP del sistema remot i \database_password per la contrasenya que voleu que utilitzi \database_username:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.5' IDENTIFIED BY 'database_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";

Per donar accés remot a un usuari des de tots els amfitrions d'una xarxa, utilitzeu la sintaxi següent:

MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';

Després de fer els canvis anteriors, intenteu connectar-vos de manera remota al servidor de bases de dades MySQL una vegada més. La connexió hauria de tenir èxit, tal com es mostra a la captura de pantalla següent.

# mysql -u database_username -p -h 10.24.96.6

Esperem que aquesta solució us hagi ajudat a resoldre el vostre error de connexió remota de Mysql. Si teniu cap pregunta, poseu-vos en contacte amb nosaltres mitjançant el formulari de comentaris que trobareu a continuació.