Erreur MySQL 1449 : l'utilisateur spécifié comme définisseur n'existe pas
Cette erreur se produit généralement lors de l'importation de vues, de déclencheurs ou de procédures depuis une autre base de données où le créateur de l'objet n'est plus existe.
Cause :
Solutions :
Option 1 : Modifier le Definer
Pour les vues :
Générer des instructions ALTER à l'aide de ce SQL :
SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
Pour les fichiers stockés Procédures :
Utilisez la syntaxe suivante, en remplaçant « votreutilisateur » par l'utilisateur souhaité :
UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%'
Option 2 : Créer l'utilisateur manquant
Créez l'utilisateur manquant avec le nom approprié privilèges :
Pour les serveurs de développement locaux :
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
Pour MariaDB :
GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!