Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe : oui) - Aucune autorisation ?
P粉136356287
P粉136356287 2023-10-09 19:39:30
0
2
1000

Je reçois toujours cette erreur.

J'utilise MySQL Workbench et j'ai constaté que les autorisations de schéma de root sont vides. Il n’y a aucun privilège.

Je rencontre des problèmes sur diverses plates-formes sur lesquelles j'utilise mon serveur, et c'est un problème qui surgit de nulle part.

root@127.0.0.1 Apparemment, il y a beaucoup d'accès, mais je suis connecté comme ça, mais il n'est attribué qu'à localhost - localhost n'a aucune autorisation.

J'ai fait des choses comme FLUSH HOSTSFLUSH PRIVILEGES etc. Mais aucun succès avec cette méthode ou avec Internet.

Comment puis-je restaurer l'accès root ? Je trouve cela frustrant parce que lorsque je regarde autour de moi, les gens s'attendent à ce que vous "ayez accès", mais je n'y ai pas accès, donc je ne peux pas accéder à la ligne de commande ou quoi que ce soit et GRANT faire quoi que ce soit moi-même.

Courez SHOW GRANTS FOR root Voici ce que je reçois en retour :

Code d'erreur : 1141. Aucune autorisation de ce type n'est définie pour l'utilisateur « root » Hôte "%"


P粉136356287
P粉136356287

répondre à tous(2)
P粉343141633

Si vous rencontrez le même problème dans MySql 5.7.+ :

Access denied for user 'root'@'localhost'

En effet, MySql 5.7 autorise les connexions socket par défaut, ce qui signifie que vous n'avez qu'à vous connecter en utilisant sudo mysql. Si vous exécutez SQL :

SELECT user,authentication_string,plugin,host FROM mysql.user;

Ensuite, vous le verrez :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Pour autoriser les connexions par root et mot de passe, mettez à jour les valeurs du tableau à l'aide de la commande :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;

Ensuite, exécutez à nouveau la commande select et vous verrez qu'elle a changé :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *2F2377C1BC54BE827DC8A4EE051CBD57490FB8C6 | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *497C3D7B50479A812B89CD12EC3EDA6C0CB686F0 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

C'est tout. Vous pouvez exécuter ce processus après avoir exécuté et terminé la commande sudo mysql_secure_installation.

Pour mariadb, utilisez

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');

Définissez un mot de passe. Pour plus d'informations, veuillez visiter https://mariadb.com/kb/en/set-password/

P粉807471604

Instructions pour réinitialiser le mot de passe root en utilisant - Mais au lieu de réinitialiser le mot de passe root, nous forcerons l'insertion d'un enregistrement dans la table mysql.user

Dans les fichiers d'initialisation, utilisez plutôt ceci

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'root', password('YOURPASSWORD'));
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!