Lorsque j'essaie d'importer des données dans une instance MySQL Amazon RDS via mysqldump, je reçois une erreur similaire à celle-ci :

Definer error: example: /*!50003 CREATE*/ /*!50017 DEFINER=`rdsadmin`@`localhost`*/ /*!50003 TRIGGER customer_update AFTER UPDATE ON `customer` FOR EACH ROW

Comment puis-je résoudre le problème ?

Les erreurs de definer se déclenchent lorsque MySQL tente de créer un objet sous un utilisateur BD qui n'existe pas dans la base de données de destination. Elles se produisent également lorsque MySQL essaie de créer un utilisateur pour un port localhost, ce qui n'est pas possible pour RDS, car il ne dispose pas des privilèges de super-utilisateur.

Il existe plusieurs façons de corriger les erreurs de definer :

  • Supprimez la ligne de definer suivante :

/*!50017 DEFINER=`rdsadmin`@`localhost`*/

Cette ligne devrait à présent indiquer :

/*!50003 CREATE*/ /*!50003 TRIGGER customer_update AFTER UPDATE ON `customer` FOR EACH ROW

  • Renommez les utilisateurs « rdsadmin » et « localhost » par « masteruser » et « % », respectivement :

/*!50003 CREATE*/ /*!50017 DEFINER=`masteruser`@`%`*/ /*!50003 TRIGGER customer_update AFTER UPDATE ON `customer` FOR EACH ROW

  • Créez ou recréez le fichier de vidage sans l'option definer.

La plupart des clients MySQL offrent la possibilité d'ignorer le definer lors de la création du fichier mysqldump. Pour obtenir des instructions sur la création d'un fichier de vidage sans l'option definer, consultez la documentation relative à votre client MySQL.

Amazon RDS, MySQL, mysqldump, erreur de definer, accès refusé


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.

Date de publication : 27/06/2016