131 votes

Erreur de MySQL/Amazon RDS : "vous n'avez pas les privilèges SUPER..."

Je tente de copier ma base de données mysql d'un Amazon EC2 vers un RDS :

J'ai réussi à faire un mysqldump de ma base de données dans mon dossier racine en utilisant ceci :

root@ip-xx-xx-xx-xx:~# mysqldump my_database -u my_username -p > my_database.sql

J'ai ensuite essayé de transférer ce fichier .sql vers ma nouvelle base de données RDS :

root@ip-xx-xx-xx-xx:~# mysql my_database -u my_username -p -h  
my_new_database.xxxxxxxxx.us-east-1.rds.amazonaws.com < my_database.sql

Malheureusement, je reçois le message d'erreur suivant :

You do not have the SUPER privilege and binary logging is enabled 
(you *might* want to use  the less safe log_bin_trust_function_creators variable)

J'ai essayé de GRANT SUPER.. de diverses manières, mais j'obtiens des erreurs lorsque j'essaie de le faire aussi. Taper mysql > FLUSH privileges; ne fonctionne pas non plus.

Je suis un débutant en mysql donc désolé pour cette question si facile. Qu'en pensez-vous ?

5voto

Jubba Smail Points 762

En plus de l'édition

log_bin_trust_function_creators = 1

vous devez supprimer tous les DÉFINISSEUR à partir de votre fichier de vidage, vérifiez le lien suivant pour SED qui peut aider à nettoyer votre fichier dump sql.

https://www.percona.com/blog/2014/07/02/using-mysql-triggers-and-views-in-amazon-rds/#comment-10968243

4voto

jeremy Points 531

Pour compléter l'article de @arun-r réponse Si vous créez un nouveau groupe de paramètres, un redémarrage est nécessaire.

enter image description here

1voto

Damien Frances Points 43

Après avoir utilisé la réponse de arun-r, si le problème n'est pas résolu vous devez modifier votre fichier dump. C'est simple.

Dans le fichier de vidage, vous trouverez des lignes comme :

DELIMITER ;;
CREATE DEFINER=`username_from_dumped_database`@`host_from_dumped_database` PROCEDURE `procedure_or_function_name`()
BEGIN

Vous devez remplacer :

  • username_from_dumped_database par votre nom d'utilisateur sur la base de données rds.
  • host_from_dumped_databse por %

Je ne sais pas pourquoi mais cette astuce a fonctionné pour moi. Un simple éditeur de texte suffit pour le faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X