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.
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]'
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';
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.