Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens « Accès refusé pour l'utilisateur \'username\'@\'localhost\'\ » dans MySQL ?

Pourquoi est-ce que j'obtiens « Accès refusé pour l'utilisateur \'username\'@\'localhost\'\ » dans MySQL ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-01 16:02:14354parcourir

Why Am I Getting

Accès refusé pour l'utilisateur 'Nom d'utilisateur'@'localhost'

Le message d'erreur "SQLSTATE[HY000] [1045] Accès refusé pour l'utilisateur 'nom d'utilisateur'@'localhost '" indique que l'utilisateur spécifié n'a pas accès à la base de données. Cela peut se produire parce que l'utilisateur n'existe pas, que le mot de passe est incorrect ou que l'utilisateur ne dispose pas des privilèges nécessaires.

Vérification de l'existence de l'utilisateur

Pour vérifier si l'utilisateur existe, exécutez ce qui suit requête :

SELECT user, host FROM mysql.user

Recherchez une ligne avec le nom d'utilisateur et le nom d'hôte spécifiés, indiquant que l'utilisateur existe.

Mot de passe Validation

Si l'utilisateur existe, confirmez que le mot de passe est correct en le mettant à jour :

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password')

Accorder des privilèges

L'utilisateur peut disposer de privilèges insuffisants pour accéder à la base de données. Accordez les privilèges nécessaires avec une commande telle que :

GRANT SELECT ON database_name.* TO 'username'@'localhost'

Configuration du pare-feu et du port

Si les étapes ci-dessus ne résolvent pas le problème, vérifiez les paramètres du pare-feu pour vous assurer que le port de la base de données (généralement 3306) est ouvert. De plus, vérifiez le nom d'hôte de l'utilisateur dans le fichier de configuration app.php. Le nom d'hôte doit correspondre à la colonne d'hôte de l'utilisateur dans la table mysql.user.

Wildcard Host

Si l'hôte de l'utilisateur est défini sur %, il correspond à n'importe quel hôte. Cela peut entraîner des problèmes si le nom d'hôte dans la configuration app.php ne correspond pas au nom d'hôte de l'utilisateur. Remplacez explicitement l'hôte de l'utilisateur par localhost.

Actualisation des privilèges

Les modifications apportées aux tables de privilèges MySQL nécessitent qu'une instruction FLUSH PRIVILEGES prenne effet, exécutée par un utilisateur privilégié :

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