Access denied for user : 'xx@xx' (using password : Y/N)
Le mot de passe entré n'est pas le bon.
Aucun mot de passe n'a été donné alors que le serveur en attend un (option -p du client MySQL en ligne de commande par exemple). Voir également cette question
L'utilisateur n'a pas les droits pour se connecter ou sur certaines tables. Pour voir les droits d'un utilisateur, utilisez la commande SHOW GRANTS FOR user@host. Si nécessaire, donnez les privilèges au user (voir plus haut). N'oubliez pas de faire un FLUSH PRIVILEGES pour recharger les droits (voir également cette question).
L'utilisateur est occulté par un autre plus prioritaire mais aux droits plus restreints. Le serveur MySQL considère d'abord les users les plus spécifiques (avec une adresse IP précise ou « localhost » par exemple) avant de prendre en compte les plus génériques (caractères '%' ou '_' dans le nom du user ou de l'hôte). Voir également cette question
Ex : si l'utilisateur Bob se connecte à partir de la machine locale où se trouve le serveur MySQL, les droits de 'bob@localhost' primeront, s'ils existent, sur les droits de 'bob@%'.
Les erreurs d'accès s'expliquent souvent par la présence d'utilisateurs anonymes (user='') dans la table users qui masquent les droits de certains autres utilisateurs. Pour y remédier, on peut les supprimer par un DELETE FROM mysql.user WHERE user=''.
Partager