Maison >base de données >tutoriel mysql >Comment résoudre l'erreur MySQL 1045 : accès refusé ?

Comment résoudre l'erreur MySQL 1045 : accès refusé ?

DDD
DDDoriginal
2024-11-28 18:06:12989parcourir

How to Resolve MySQL Error 1045: Access Denied?

Erreur : SQLSTATE[HY000] [1045] Accès refusé pour l'utilisateur "nom d'utilisateur"@'localhost'

Vue d'ensemble

Cette erreur se produit lors de la tentative pour accéder à une base de données à partir d'un utilisateur et d'un hôte spécifiques, mais refusé en raison d'informations d'identification non valides ou d'un utilisateur manquant privilèges.

Inspection de la configuration utilisateur

1. Existence de l'utilisateur de la base de données

Vérifiez que l'utilisateur spécifié ("test2") existe dans la base de données MySQL. Exécutez la requête suivante :

SELECT user, host FROM mysql.user;

Recherchez une ligne où "user" est "test2" et "host" est "localhost" ou un caractère générique ("%"), comme indiqué dans le message d'erreur.

2. Vérification du mot de passe

Si l'utilisateur de la base de données existe, vérifiez si le mot de passe correspond à celui utilisé dans la demande de connexion. Changez le mot de passe si nécessaire :

SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('new_password');

Accorder des privilèges

1. Vérification des autorisations

Confirmez que l'utilisateur de la base de données dispose de privilèges suffisants sur les objets de base de données souhaités. Par exemple, pour accorder les privilèges SELECT sur la base de données "jobs" :

GRANT SELECT ON jobs.* TO 'test2'@'localhost';

2. Actualisation des privilèges

Après avoir modifié les tables de privilèges, exécutez une instruction FLUSH PRIVILEGES pour rendre les modifications effectives :

FLUSH PRIVILEGES;

Dépannage supplémentaire

1. Incompatibilité d'hôte

Assurez-vous que l'hôte spécifié dans la demande de connexion ("localhost") correspond à l'hôte associé à l'utilisateur dans la base de données. Changez l'hôte en "localhost" ou "%".

2. Blocage du pare-feu

Désactivez temporairement le pare-feu pour vérifier s'il bloque l'accès à MySQL sur le port spécifié. Ajustez le port dans la demande de connexion si nécessaire.

3. Nom d'utilisateur ou mot de passe incorrect

Vérifiez à nouveau le nom d'utilisateur et le mot de passe de la base de données utilisés dans la demande de connexion.

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