Sådan løses FEJL 1130 (HY000): Værten har ikke lov til at oprette forbindelse til denne MySQL-server


I denne hurtige artikel lærer du, hvordan du løser fejlen “ERROR 1130 (HY000): Host x.x.x.x har ikke lov til at oprette forbindelse til denne MySQL-server” i MySQL/MariaDB-databaseinstallation på et Linux-system. Dette er en af de almindelige eksterne databaseforbindelsesfejl, som brugerne støder på.

  • Application Server IP: 10.24.96.5
  • Database Server IP: 10.24.96.6

Vi stødte på fejlen under test af databaseforbindelse fra en af vores app-servere til en databaseserver ved hjælp af mysql-klienten som vist.

# mysql -u database_username -p -h 10.24.96.6

Fejlen indikerer, at den vært 10.24.96.5, som databasebrugeren opretter forbindelse til, ikke har lov til at oprette forbindelse til MySQL-serveren. I dette tilfælde er vi nødt til at foretage nogle ændringer på databaseserveren, så brugeren kan oprette forbindelse eksternt.

På databaseserveren skal vi kontrollere den vært, som brugeren ovenfor har lov til at oprette forbindelse fra.

# mysql -u root -p

Kør følgende SQL-kommandoer for at kontrollere brugerens vært:

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

Fra kommandoens output har brugeren kun lov til at oprette forbindelse til databaseserveren fra localhost. Så vi er nødt til at opdatere brugerens værter som følger.

Kør følgende GRANT-kommando for at aktivere MySQL-adgang for fjernbrugeren fra en ekstern vært. Sørg for at erstatte “10.24.96.6” med IP-adressen på det eksterne system og “database_password” til den adgangskode, du vil have, at “database_username” skal bruge:

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";

For at give en bruger fjernadgang fra alle værter på et netværk skal du bruge syntaksen nedenfor:

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

Efter at have foretaget ovenstående ændringer, skal du prøve at oprette forbindelse til MySQL-databaseserveren igen. Forbindelsen skal være vellykket som vist i det følgende skærmbillede.

# mysql -u database_username -p -h 10.24.96.6

Vi håber, at denne løsning hjalp dig med at løse din Mysql-fjernforbindelsesfejl. Hvis spørgsmål er tilgængelige via feedbackformularen nedenfor.