Erreur de gestion 1698 lors de la connexion MySQL
Les utilisateurs peuvent rencontrer ERREUR 1698 (28000) : accès refusé pour l'utilisateur 'root'@ 'localhost' lorsque vous essayez de vous connecter à la base de données MySQL avec l'utilisateur root. Cette erreur est souvent rencontrée sur des systèmes comme Ubuntu, où MySQL utilise le plugin Unix auth_socket pour l'authentification par défaut.
Contexte : Le plugin auth_socket s'appuie sur les informations d'identification de l'utilisateur système pour l'authentification. En interrogeant la table mysql.user, vous pouvez vérifier que l'utilisateur root est enregistré avec ce plugin :
SELECT User, Host, plugin FROM mysql.user;
Solutions possibles :
Option 1 : Configurer l'utilisateur root pour utiliser le plugin mysql_native_password
Cette méthode implique de configurer l'utilisateur root pour qu'il utilise le plus traditionnel Plugin mysql_native_password :
UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; sudo service mysql restart
Option 2 : Créer un nouvel utilisateur de base de données (recommandé)
Une approche alternative consiste à créer un nouvel utilisateur de base de données en utilisant votre nom d'utilisateur système. Cela fournit une option plus gérable et sécurisée :
CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD'; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost'; UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER'; FLUSH PRIVILEGES; sudo service mysql restart
Notez qu'avec l'option 2, vous vous connecterez à MySQL en utilisant le nom d'utilisateur de votre système :
mysql -u YOUR_SYSTEM_USER
Considérations supplémentaires :
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!