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.