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

Sådan rettes ERROR 1130 (HY000):Host har ikke tilladelse til at oprette forbindelse til denne MySQL-server

I denne hurtige artikel lærer du, hvordan du løser "FEJL 1130 (HY000):Host x.x.x.x har ikke tilladelse til at oprette forbindelse til denne MySQL-server ” fejl i MySQL/MariaDB-databaseimplementering på et Linux-system. Dette er en af ​​de almindelige fejl i fjerndatabaseforbindelsen, som brugere støder på.

Testmiljø:

  • Applikationsserver IP :10.24.96.5
  • Databaseserver-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 klient som vist.

# mysql -u database_username -p -h 10.24.96.6

Fejlen indikerer, at værten 10.24.96.5 som databasebrugeren opretter forbindelse fra, har ikke tilladelse til at oprette forbindelse til MySQL-serveren. I dette tilfælde er vi nødt til at foretage nogle ændringer på databaseserveren for at gøre det muligt for brugeren at forbinde eksternt.

På databaseserveren skal vi tjekke den vært, som brugeren ovenfor har tilladelse 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 outputtet af kommandoen har brugeren kun tilladelse til at oprette forbindelse til databaseserveren fra localhost . Så vi skal opdatere brugerens værter som følger.

Kør følgende GRANT kommando for at aktivere MySQL-adgang for fjernbrugeren fra en fjernvært. Sørg for at erstatte "10.24.96.6 " med IP-adressen på fjernsystemet og "database_adgangskode ” til den adgangskode, du ønsker “database_brugernavn " for at 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, brug nedenstående syntaks:

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

Efter at have foretaget ovenstående ændringer, prøv at fjernforbindelse til MySQL-databaseserveren igen. Forbindelsen skulle være vellykket som vist på 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 du har spørgsmål, kontakt os via feedbackformularen nedenfor.


  1. Skift type varchar-felt til heltal:kan ikke castes automatisk til typen heltal

  2. Hvordan virker contains() i PL-SQL?

  3. Kan ikke hente id'et for den sidst indsatte række i Hibernate ved hjælp af Oracle

  4. Sådan identificerer du MySQL-ydelsesproblemer med langsomme forespørgsler