Comment résoudre l'ERREUR 1227 lors de l'importation de données dans une instance de base de données MySQL Amazon RDS lorsque les sauvegardes automatiques sont activées ?

Date de la dernière mise à jour : 20/11/2020

J'ai importé la sauvegarde logique effectuée à l'aide de mysqldump vers une instance de base de données MySQL Amazon Relational Database Service (Amazon RDS) dotée de sauvegardes automatiques activées. J'ai reçu un message d'erreur similaire à celui-ci :

« Error: 1227 SQLSTATE: 42000 (ER_SPECIFIC_ACCESS_DENIED_ERROR) Accès refusé : vous devez disposer d’au moins un des privilèges %s pour cette opération »

Brève description

Cette erreur se produit lorsque le journal binaire de la base de données est activé et que le fichier mysqldump contient un objet stocké (un déclencheur, une vue, une fonction ou un événement). Pour plus d'informations, reportez-vous à la documentation MySQL sur le journal binaire.

Si des instructions de création n'incluent pas les mots clés « NO SQL », « READS SQL DATA » ou « DETERMINISTIC », MySQL ne peut pas créer ces objets, et l'importation échoue avec l'erreur 1227.

Solution

Pour résoudre l'erreur 1227, remplacez la valeur de groupe de paramètres log_bin_trust_function_creators par 1.

Pour déverrouiller cette condition et autoriser l'importation de tous les objets, définissez les variables système global log_bin_trust_function_creators sur 1 dans l'ensemble du groupe de paramètres de base de données personnalisés Amazon RDS. Pour plus d'informations, consultez Modification de paramètres dans un groupe de paramètres de base de données.

Remarque : vous ne pouvez pas modifier les valeurs d'un groupe de paramètres par défaut. Associez plutôt un groupe de paramètres personnalisés à votre instance de base de données si le groupe de paramètres par défaut est actuellement associé à l'instance de base de données. Après avoir associé un nouveau groupe de paramètres à votre instance de base de données RDS, vous devez redémarrer votre instance de base de données.

Si vous disposez d'un groupe de paramètres personnalisés, associez-le à votre instance de base de données, puis procédez comme suit :

  1. Ouvrez la console Amazon RDS, puis choisissez Groupes de paramètres dans le volet de navigation.
  2. Choisissez le nom du groupe de paramètres personnalisés associé à votre instance de base de données.
  3. Saisissez log_bin_trust_function_creators dans le champ Filtrer les paramètres, puis choisissez Modifier les paramètres.
  4. Remplacez les valeurs de log_bin_trust_function_creators par 1.
  5. Choisissez Enregistrer les modifications.
    Remarque : comme il s'agit d'un paramètre dynamique et que le groupe de paramètres personnalisés est déjà associé votre instance de base de données, Amazon RDS applique immédiatement cette modification. Pour plus d'informations, consultez Utilisation des groupes de paramètres de base de données.

Si vous disposez d'un groupe de paramètres par défaut associé à votre instance de base de données RDS :

  1. Ouvrez la console Amazon RDS, puis choisissez Groupes de paramètres dans le volet de navigation.
  2. Choisissez Créer un groupe de paramètres, puis la famille de groupes de paramètres correspondant à votre instance de base de données.
  3. Renseignez les champs Nom de groupe et Description, puis choisissez Créer.
  4. Choisissez le nom du nouveau groupe de paramètres, puis saisissez log_bin_trust_function_creators dans le champ Filtrer les paramètres.
  5. Choisissez Modifier les paramètres et remplacez les valeurs de log_bin_trust_function_creators par 1.
    Remarque : vérifiez que le même groupe de paramètres est associé à l'instance de base de données cible où se produit l'erreur.
  6. Choisissez Enregistrer les modifications.
  7. Choisissez Bases de données dans le volet de navigation.
  8. Sélectionnez l’instance de base de données, puis choisissez Modify (Modifier).
  9. Sous Database options Options de base de données, choisissez le groupe de paramètres que vous avez créé.
  10. Sélectionnez Continuer.
  11. Choisissez Appliquer immédiatement ou Appliquer pendant la fenêtre de maintenance planifiée suivante.
  12. Choisissez Modifier l'instance de base de données.
  13. Redémarrez manuellement votre instance de base de données pour que le groupe de paramètres ait le statut in-sync.
    Remarque : pour appliquer les modifications relatives au nouveau groupe de paramètres associé, vous devez redémarrer manuellement votre instance de base de données. Pour plus d'informations, consultez Utilisation des groupes de paramètres de base de données.

Si la journalisation binaire ou les sauvegardes automatiques sont activées et que vous recevez cette erreur lorsque vous essayez d'importer le vidage dans une instance de base de données MySQL Amazon RDS, vérifiez que vous avez correctement défini le paramètre log_bin_trust_function_creators. Pour plus d'informations, consultez Comment éliminer les erreurs de définition lors de l'importation de données vers mon instance de base de données Amazon RDS for MySQL en utilisant mysqldump ?