Recherche de site Web

Comment réparer l'ERREUR 1130 (HY000) : l'hôte n'est pas autorisé à se connecter à ce serveur MySQL


Dans cet article rapide, vous apprendrez comment résoudre l'erreur « ERREUR 1130 (HY000) : l'hôte x.x.x.x n'est pas autorisé à se connecter à ce serveur MySQL » dans le déploiement de la base de données MySQL/MariaDB sur un système Linux. Il s’agit de l’une des erreurs de connexion à une base de données distante les plus courantes rencontrées par les utilisateurs.

Environnement de test :

  • IP du serveur d'applications : 10.24.96.5
  • IP du serveur de base de données : 10.24.96.6

Nous avons rencontré l'erreur lors du test de la connexion à la base de données de l'un de nos serveurs d'applications à un serveur de base de données, à l'aide du client mysql comme indiqué.

mysql -u database_username -p -h 10.24.96.6

L'erreur indique que l'hôte 10.24.96.5 à partir duquel l'utilisateur de la base de données se connecte n'est pas autorisé à se connecter au serveur MySQL. Dans ce cas, nous devons apporter quelques modifications au serveur de base de données pour permettre à l'utilisateur de se connecter à distance.

Sur le serveur de base de données, nous devons vérifier l'hôte à partir duquel l'utilisateur ci-dessus est autorisé à se connecter.

mysql -u root -p

Exécutez les commandes SQL suivantes pour vérifier l'hôte de l'utilisateur :

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

À partir du résultat de la commande, l'utilisateur est uniquement autorisé à se connecter au serveur de base de données à partir du localhost. Nous devons donc mettre à jour les hôtes de l’utilisateur comme suit.

Exécutez la commande GRANT suivante pour activer l'accès MySQL pour l'utilisateur distant à partir d'un hôte distant. Assurez-vous de remplacer « 10.24.96.6 » par l'adresse IP du système distant et « database_password » par le mot de passe souhaité « database_username » à utiliser :

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

Pour donner à un utilisateur un accès à distance depuis tous les hôtes d'un réseau, utilisez la syntaxe ci-dessous :

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

Après avoir apporté les modifications ci-dessus, essayez à nouveau de vous connecter à distance au serveur de base de données MySQL. La connexion devrait réussir, comme indiqué dans la capture d'écran suivante.

mysql -u database_username -p -h 10.24.96.6

Nous espérons que cette solution vous a aidé à résoudre votre erreur de connexion à distance Mysql. Si vous avez des questions, contactez-nous via le formulaire de commentaires ci-dessous.