6.13 Causes des erreurs "Access denied"

L'erreur " Access denied " (accès refusé) peut survenir lors d'une tentative de connexion à MySQL. Voici une liste de problème type qui peuvent être la cause d'un tel comportement, et leur solution :@:

shell> mysql -u root test

Le serveur doit vous autoriser la connexion sans erreur. Assurez vous aussi que vous avez un fichier appelé ``user.ISD'' dans le dossier de MySQL. Généralement, il se trouve là :@: ``PATH/var/mysql/user.ISD'', Avec PATH qui représente le chemin jusqu'à la racine de l'installation de MySQL.

shell> mysql -u root mysql

Le serveur autorisera la connexion car l'utilisateur MySQL root n'a pas de mot de passe à l'origine. Etant donné que cela crée un gros risque au niveau de la sécurité de la base, affecter un mot de passe à l'utilisateur root doit être une priorité lorsque vous créez les utilisateurs de votre serveur. Si, lors de la connexion en tant que root , vous obtenez l'erreur suivante :@:

Access denied for user:@: '@unknown' to database mysql

Cela signifie que vous n'avez pas de ligne dans la table user avec la valeur 'root' dans la colonne User et que mysqld n'a pas pu trouver votre hôte dans cette table. Dans ce cas, vous devez redémarrer le serveur avec l'option --skip-grant-tables et éditer les fichiers ``/etc/hosts'' ou ``windowshosts'' pour ajouter une ligne pour votre hôte.

mysql> SELECT clean_docs_mysql clean_docs-php debut.php fin.php index.php menu.php mysql php FROM user;

Le résultat devrait contenir une ligne dont les colonnes Host et User correspondent au nom d'hôte de votre ordinateur et au nom d'utilisateur MySQL.

Host ... is not allowed to connect to this MySQL server

Vous pouvez régler ce problème en utilisant l'utilitaire mysql (sur la machine server ! !) pour ajouter une ligne dans la table user pour le nom d'hôte de votre ordinateur et le nom d'utilisateur. Si vous ne fonctionnez pas sous MySQL 3.22 et que vous ne savez pas quelle adresse IP ou quel nom d'hôte est celui de votre machine, il vaut mieux ajouter une ligne avec '%' dans la colonne Host et redémarrer le serveur avec l'option --log option. Après avoir tenté de vous connecter depuis la machine client, l'historique vous indiquera qui s'est réellement connecté. Vous pouvez alors remplacer la ligne avec '%' de la table user par une ligne plus spécifique. Sinon, cela peut créer un trou de sécurité.

Access to database denied

Si l'entrée sélectionnée dans la table db a une colonne Host vide, assurezvous qu'il y a au moins une entrée correspondante dans la table host qyu spécifie à quel hôte s'applique ces droits. Si vous avez une erreur en utilisant la commande SELECT ... INTO OUTFILE or LOAD DATA INFILE, c'est que vous n'avez peut être pas les droits file.