Après avoir mis à niveau MySQL 5.7 vers MySQL 8.0, j'ai redémarré MySQL et j'ai eu une erreur: l'utilisateur spécifié en tant que définisseur ('mysql.infoschema'@'localhost') n'existe pas 'lors de la tentative de vidage des espaces de table. Je ne comprends pas pourquoi ce problème se produit. Et je veux savoir comment le résoudre
Réponses
Trop de publicités?J'ai eu la même erreur quand j'ai accidentellement déclassé ma version de MySQL à partir de 8 à 5.7. Au premier démarrage, l'ancienne version s'est cassé quelque chose, de sorte que la version 8 a été montrant l'erreur ci-dessus. Dans mon cas, j'ai dû entrer dans le conteneur docker où MySQL était en cours d'exécution de la première
docker exec -it mysql bash
Alors en gros, j'ai suivi la procédure ici
mysql -u root -p
mysql> SET GLOBAL innodb_fast_shutdown = 1;
mysql_upgrade -u root -p
Cela a pris quelques minutes, mais ensuite, tout s'est à nouveau au travail.
Cela peut se produire après un certain temps après avoir configuré votre nouveau système.
En tant que solution suggérée, essayez simplement sur Windows
1) ouvrez cmd.exe
tant qu'administrateur
2) exécuter mysql_upgrade.exe -uyour_user_name -pyour_password
mysql_upgrade.exe
peut être localisé à
C:\Program Files\MySQL\MySQL Server 8.0\bin
Exécutez ensuite ce qui suit pour voir si l'utilisateur infoschema est apparu.
select user, host from mysql.user;
Dans mon cas, une telle erreur a été provoquée par que j'avais changé l'hôte de l'administrateur de base de l'utilisateur à partir de % à localhost pour renforcer la sécurité.
J'ai utilisé "abcdba" avec DDL droit de créer db schéma, et utilisés "abc" avec CAILLÉ droit pour le service Web à utiliser la DB. Après le changement, les opérations de lecture ont été OK, mais les opérations d'écriture a échoué avec le message d'erreur dans l'OP.
Rincer privilège ou de redémarrer le serveur n'a pas de résoudre le problème. Puis j'ai changé d'accueil de l'administrateur de base de l'utilisateur vers %. De là les choses redeviennent normales.
Apparemment, mysql n'aime pas les changements d'accueil de l'administrateur de base de l'utilisateur, et les bases de données créées par l'utilisateur dba aura des problèmes si l'hôte de l'administrateur de base de l'utilisateur est modifié.
Essentiellement, modification de l'hôte de l'administrateur de base de l'utilisateur est en fait la suppression de l'utilisateur abcdba@% et la création d'un nouvel utilisateur abcdba@localhost. Ici était venu le message d'erreur, depuis abcdba@% et abcdba@localhost sont 2 différemment pleinement qualifié les noms d'utilisateur.