Accès à la base de données refusé pour l'utilisateur « root » dans Ubuntu 16.04
Lors de l'accès à une base de données à l'aide d'un serveur Web dans Ubuntu 16.04, vous pouvez rencontrer l'erreur "SQLSTATE[HY000] [1698] Accès refusé pour l'utilisateur 'root'@'localhost'". Ce problème survient malgré la création de nouveaux utilisateurs avec tous les privilèges.
Restrictions des utilisateurs root dans MySQL 5.7
La cause première de cette erreur réside dans les modifications introduites dans MySQL 5.7, qui restreint l'utilisation de l'utilisateur 'root' sans privilèges sudo. Dans les versions précédentes, les utilisateurs pouvaient accéder à MySQL en tant que « root » sans élever leurs privilèges en utilisant la commande « mysql -u root ». Cependant, dans MySQL 5.7, cette approche n'est plus possible.
Solution de contournement
Pour résoudre ce problème, vous devez créer un nouvel utilisateur avec les privilèges nécessaires et utiliser cet utilisateur au lieu de « root » lors de l'établissement de connexions à la base de données à partir de votre application PHP ou d'autres outils sans ligne de commande.
Code PHP
Dans votre code PHP, remplacez le nom d'utilisateur et mot de passe avec les informations d'identification de l'utilisateur nouvellement créé :
<code class="php">protected $name = 'new_user'; protected $pass = 'new_password';</code>
Accès root depuis la ligne de commande
Bien que vous ne puissiez pas utiliser l'utilisateur « root » directement dans Pour les applications GUI ou sans ligne de commande, vous pouvez toujours accéder à MySQL en tant que « root » à partir de la ligne de commande en utilisant sudo :
sudo mysql -u root
N'oubliez pas que cette approche élève vos privilèges et ne doit être utilisée que lorsque cela est nécessaire. Il est recommandé de créer un utilisateur dédié à la gestion de la base de données et d'utiliser cet utilisateur au lieu de « root » pour des raisons de sécurité.
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!