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.
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.
Si l'utilisateur existe, confirmez que le mot de passe est correct en le mettant à jour :
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password')
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'
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.
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.
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!