Zoeken op website

Hoe FOUT 1130 (HY000) te verhelpen: Host mag geen verbinding maken met deze MySQL-server


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

Test omgeving:

  • IP van applicatieserver: 10.24.96.5
  • Databaseserver-IP: 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-client, zoals weergegeven.

mysql -u database_username -p -h 10.24.96.6

De fout geeft aan dat de host 10.24.96.5 waarmee de databasegebruiker verbinding maakt, geen verbinding mag maken met de MySQL-server. In dit geval moeten we enkele wijzigingen aanbrengen in de databaseserver zodat de gebruiker op afstand verbinding kan 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";

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

Voer de volgende GRANT-opdracht uit om MySQL-toegang voor de externe gebruiker vanaf een externe host in te schakelen. Zorg ervoor dat u “10.24.96.6” vervangt door het IP-adres van het externe systeem, en “database_password” door het gewenste wachtwoord “database_gebruikersnaam ” 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";

Om een gebruiker externe toegang te geven vanaf alle hosts in een netwerk, gebruikt u de onderstaande syntaxis:

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

Probeer na het aanbrengen van de bovenstaande wijzigingen 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 externe verbindingsfout. Als u vragen heeft, kunt u ons bereiken via het onderstaande feedbackformulier.