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 HOSTS
、FLUSH 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 "%"
Si vous rencontrez le même problème dans MySql 5.7.+ :
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 :Ensuite, vous le verrez :
Pour autoriser les connexions par root et mot de passe, mettez à jour les valeurs du tableau à l'aide de la commande :
Ensuite, exécutez à nouveau la commande select et vous verrez qu'elle a changé :
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
Définissez un mot de passe. Pour plus d'informations, veuillez visiter https://mariadb.com/kb/en/set-password/
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