1045: Access denied for user (using password: YES/NO) (accès refusé pour l'utilisateur)
MySQLQue signifie cette erreur ?
L'authentification a échoué pour le nom d'utilisateur, le mot de passe ou l'hôte depuis lequel vous vous connectez ; la connexion a été refusée.
Cause
Mot de passe erroné, l'utilisateur n'a pas de privilèges depuis l'hôte d'où il se connecte (user@host), le compte n'existe pas, incompatibilité de plugin d'authentification (caching_sha2_password ou mysql_native_password) ou identifiants obsolètes dans la chaîne de connexion.
Comment la corriger
Vérifiez la correspondance utilisateur/hôte : SELECT user, host, plugin FROM mysql.user. Accordez les privilèges pour le bon hôte (par ex. 'app_user'@'%'). Réinitialisez le mot de passe : ALTER USER 'app_user'@'host' IDENTIFIED BY 'new_password'; (ALTER USER/GRANT prennent effet immédiatement ; FLUSH PRIVILEGES n'est nécessaire que si les tables de privilèges ont été modifiées directement par DML). Si vous voyez 'using password: NO', le client n'envoie pas du tout de mot de passe. En cas d'incompatibilité de plugin, revoyez le plugin d'authentification : dans MySQL 8.4, le plugin mysql_native_password est désactivé par défaut (chargé uniquement avec --mysql-native-password=ON) ; les anciens comptes utilisant ce plugin et les anciens clients ne peuvent pas se connecter. Migrez le compte avec ALTER USER ... IDENTIFIED WITH caching_sha2_password BY '...'; et mettez à niveau le pilote client.
Autres entrées pour ce moteur
- 1062Duplicate entry for key (entrée en double pour la clé)
- 1213Deadlock found when trying to get lock; try restarting transaction (interblocage lors de l'acquisition du verrou ; relancez la transaction)
- 1205Lock wait timeout exceeded; try restarting transaction (délai d'attente de verrou dépassé ; relancez la transaction)
- 1040Too many connections (trop de connexions)