web-dev-qa-db-fra.com

mysqldump: Vous avez l'erreur: 1449:

mysqldump: Erreur obtenue: 1449: l'utilisateur spécifié comme définisseur ('root' @ '192.200.1.16') n'existe pas lors de l'utilisation de LOCK TABLES

veuillez donner la solution sur l'erreur ci-dessus.

15

Il est préférable d'utiliser d'abord mysqldump avec --single-transaction, comme:

mysqldump --single-transaction -u root -p mydb > mydb.sql

Si ci-dessus ne fonctionne pas, essayez en dessous de un.

Vous devez remplacer le définit pour ces procédures/méthodes, puis vous pouvez générer le vidage sans erreur.

Vous pouvez faire ceci comme:

UPDATE `mysql`.`proc` p SET definer = 'root@localhost' WHERE definer='[email protected]'
45
prashant thakre

j'ai rencontré le même problème lorsque j'ai copié toutes les vues et la table d'un autre hôte

enfin, j'ai utilisé cette requête pour changer tous les définitions dans ma base de données 

  SELECT CONCAT("ALTER DEFINER=`youruser`@`Host` VIEW ", table_name, " AS ",view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
0
venkey

J'ai eu un problème similaire, le problème était que vous vouliez migrer une base de données d'une instance à une autre, mais dans le dump, il y avait aussi des procédures faisant référence à d'autres bases de données. J'ai donc marqué cette erreur et corrigé en modifiant les procédures ou en omettant d'en supprimer certaines.

0
Vittee Criss