Maison > Article > base de données > Pourquoi est-ce que j'obtiens « Accès refusé » pour l'utilisateur MySQL « root » sur Ubuntu 16.04 ?
Accès refusé pour l'utilisateur MySQL 'root' utilisant Ubuntu 16.04
Lors d'une tentative de connexion à une base de données MySQL à partir d'un serveur Web sur Ubuntu 16.04 , les utilisateurs peuvent rencontrer l'erreur suivante :
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
Ce problème se produit car, dans MySQL 5.7, le mécanisme d'authentification par défaut a changé et l'utilisateur root n'est plus accessible sans privilèges élevés.
Solution :
Pour résoudre cette erreur, les utilisateurs doivent créer un nouvel utilisateur MySQL avec les privilèges nécessaires au lieu d'utiliser l'utilisateur root. Les étapes suivantes décrivent le processus :
sudo mysql -u root -p
Entrez votre mot de passe root lorsque vous y êtes invité.
CREATE USER new_user@localhost IDENTIFIED BY 'new_password';
Remplacez 'new_user' par le nom d'utilisateur souhaité et 'new_password' par un mot de passe fort.
GRANT ALL PRIVILEGES ON *.* TO new_user@localhost;
Cela accorde au nouvel utilisateur un accès complet à toutes les bases de données et tables.
Modifiez le code PHP dans la question fournie pour utiliser les informations d'identification de l'utilisateur nouvellement créées, en remplaçant « root » par « new_user » et « root » par « new_password ».
FLUSH PRIVILEGES;
Cela met à jour le tableau des privilèges avec les modifications apportées.
EXIT;
En suivant ces étapes, les utilisateurs peuvent se connecter à leur base de données MySQL à partir d'un serveur Web sur Ubuntu 16.04 sans rencontrer l'erreur « Accès refusé ».
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!