Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens « L'hôte 'xxx.xx.xxx.xxx' n'est pas autorisé à se connecter à ce serveur MySQL » même avec une entrée d'hôte '%' ?

Pourquoi est-ce que j'obtiens « L'hôte 'xxx.xx.xxx.xxx' n'est pas autorisé à se connecter à ce serveur MySQL » même avec une entrée d'hôte '%' ?

DDD
DDDoriginal
2024-12-20 18:06:11626parcourir

Why Do I Get

Erreur de connexion MySQL à distance : "Hôte non autorisé"

La connexion à distance à MySQL peut parfois entraîner le message d'erreur "Hôte 'xxx. xx.xxx.xxx' n'est pas autorisé à se connecter à ce serveur MySQL." Malgré une entrée d'utilisateur root avec une valeur d'hôte à la fois « localhost » et « % », la connexion échoue.

Ce problème est généralement rencontré en raison des mesures de sécurité mises en œuvre par MySQL. Une solution possible consiste à créer un nouvel utilisateur administratif avec des privilèges et des restrictions d'accès spécifiques :

Créer un nouvel utilisateur administratif :

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' ->     WITH GRANT OPTION;

Bien qu'il soit pratique d'accorder des privilèges étendus , cela n'est pas recommandé en raison des risques de sécurité. Au lieu de cela, il est prudent de :

  • Limiter l'accès des utilisateurs aux hôtes et adresses IP spécifiques requis.
  • Accorder uniquement les privilèges nécessaires pour la tâche à accomplir.

Aperçu de la FAQ MySQL :

La FAQ MySQL fournit des éclaircissements supplémentaires à ce sujet problème :

"Si vous ne parvenez pas à comprendre pourquoi vous obtenez "Accès refusé", supprimez toutes les entrées de la table utilisateur dont les valeurs d'hôte contiennent des caractères génériques (par exemple, "% ou _"). Il est courant d'insérer accidentellement une entrée. avec host='%' et user='some_user' pour activer les connexions localhost. Cependant, cela ne fonctionnera pas car les privilèges par défaut incluent une entrée avec host='localhost' et user=''. et sera utilisé à la place. Pour autoriser les connexions localhost, insérez une deuxième entrée avec host='localhost' et user='some_user', ou supprimez l'entrée localhost par défaut et émettez une instruction FLUSH PRIVILEGES."

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn