sql >> Database >  >> RDS >> Mysql

Hoe ERROR 1130 (HY000) op te lossen:Host mag geen verbinding maken met deze MySQL-server

In dit korte artikel leert u hoe u de "ERROR 1130 (HY000):Host x.x.x.x mag geen verbinding maken met deze MySQL-server oplost ”-fout in MySQL/MariaDB-database-implementatie op een Linux-systeem. Dit is een van de veelvoorkomende fouten bij verbinding met externe databases die gebruikers tegenkomen.

Testomgeving:

  • IP van toepassingsserver :10.24.96.5
  • IP van databaseserver :10.24.96.6

We zijn de fout tegengekomen tijdens het testen van de databaseverbinding van een van onze app-servers naar een databaseserver, met behulp van de mysql klant zoals getoond.

# mysql -u database_username -p -h 10.24.96.6

De fout geeft aan dat de host 10.24.96.5 waarvan de databasegebruiker verbinding maakt, mag geen verbinding maken met de MySQL-server. In dit geval moeten we enkele wijzigingen aanbrengen in de databaseserver om de gebruiker in staat te stellen op afstand verbinding te maken.

Op de databaseserver moeten we controleren vanaf welke host de gebruiker hierboven verbinding mag maken.

# mysql -u root -p

Voer de volgende SQL-opdrachten uit om de host van de gebruiker te controleren:

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

Vanaf de uitvoer van de opdracht mag de gebruiker alleen verbinding maken met de databaseserver vanaf de localhost . We moeten de hosts van de gebruiker dus als volgt bijwerken.

Voer de volgende GRANT . uit opdracht om MySQL-toegang voor de externe gebruiker vanaf een externe host in te schakelen. Zorg ervoor dat u "10.24.96.6 . vervangt ” met het IP-adres van het externe systeem, en “database_password ” naar het gewenste wachtwoord “database_username ” te gebruiken:

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

Gebruik de onderstaande syntaxis om een ​​gebruiker externe toegang te geven vanaf alle hosts op een netwerk:

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

Nadat u de bovenstaande wijzigingen hebt aangebracht, probeert u nogmaals op afstand verbinding te maken met de MySQL-databaseserver. De verbinding zou succesvol moeten zijn, zoals weergegeven in de volgende schermafbeelding.

# mysql -u database_username -p -h 10.24.96.6

We hopen dat deze oplossing u heeft geholpen bij het oplossen van uw Mysql-verbindingsfout op afstand. Als u vragen heeft, kunt u ons bereiken via het onderstaande feedbackformulier.


  1. mysql fulltext zoeken mislukt

  2. PostgreSQL - FOUT:kolomdatum kan niet worden gecast om datum te typen

  3. Hoe het resultaat van een SELECT binnen een functie in PostgreSQL te retourneren?

  4. Fout bij het installeren van mysql2:kan de native extensie van de gem niet bouwen