51 votes

Erreur Mysql: l'utilisateur spécifié en tant que définisseur ('mysql.infoschema'@'localhost') n'existe pas 'lors de la tentative de vidage des espaces disque logiques

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

170voto

Alwinius Points 1880

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.

10voto

Mikhail D Points 201

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;
 

0voto

ZZZ Points 918

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X