Maison > Article > base de données > Pourquoi est-ce que j'obtiens l'erreur \"SQLSTATE[HY000] [1698] Accès refusé pour l'utilisateur \'root\'@\'localhost\'\" dans MySQL 5.7 ?
"SQLSTATE[HY000] [1698] Accès refusé pour l'utilisateur 'root'@'localhost'" : une explication détaillée
Dans ce contexte, vous avez rencontré le message d'erreur frustrant "SQLSTATE[HY000] [1698] Accès refusé pour l'utilisateur 'root'@'localhost'", en essayant d'accéder à une base de données avec les privilèges root via PHP et phpMyAdmin. Malgré la création d'un nouvel utilisateur avec de nombreux privilèges, la création de la base de données échoue.
Cette erreur provient d'une amélioration de sécurité introduite dans MySQL 5.7, qui restreint l'utilisation de l'utilisateur root sans privilèges élevés (sudo). Auparavant, vous pouviez simplement appeler « mysql -u root », mais cette approche n'est plus viable. Au lieu de cela, vous devez utiliser "sudo mysql -u root".
Par conséquent, l'utilisation de l'utilisateur root dans les interfaces utilisateur graphiques (GUI) ou les applications sans ligne de commande échouera. Pour contourner ce problème, créez un nouvel utilisateur avec les privilèges nécessaires et utilisez cet utilisateur à la place.
Pour plus de précisions, reportez-vous à la solution fournie dans cette réponse : (ici).
Cette solution résout le problème en empêchant l'utilisation directe de l'utilisateur root sans privilèges accrus, améliorant ainsi la sécurité. Pour conserver la fonctionnalité, envisagez de créer un nouvel utilisateur doté des autorisations appropriées pour accéder à la base de données.
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!