J'ai essayé de déplacer une base de données existante de MySQL fonctionnant sur EC2 vers une nouvelle instance Amazon RDS (une expérience pour voir si nous pouvons traverser). Jusqu'à présent, ça ne va pas bien. Je suis bloqué à l'importation initiale avant de configurer la réplication (instructions ici ).
J'ai préparé l'instance RDS comme décrit et je peux me connecter depuis l'instance EC2 en utilisant mysql. J'ai exécuté la commande mysqldump en tant que:
mysqldump --master-data --databases db1 db2 > dump.sql
Ensuite, j'ai tenté de le télécharger sur RDS avec:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
Le premier problème était à la ligne 22 du dépotoir:
CHANGE MASTER EN MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Cette ligne a provoqué une erreur ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Pas de problème, juste commenté cette ligne et j'espère la corriger plus tard via mysql.rds_set_external_master (). Retenté le téléchargement, et a obtenu une erreur très similaire: ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. La section autour de la ligne 7844 ressemble à ceci:
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`dev`@`localhost` SQL SECURITY DEFINER */
/*!50001 VIEW `jos_contributor_ids_view` AS select `jos_resource_contributors_view`.`uidNumber` AS `uidNumber` from `jos_resource_contributors_view` union select `jos_wiki_contributors_view`.`uidNumber` AS `uidNumber` from `jos_wiki_contributors_view` */;
En commentant les 2 premières lignes et en ajoutant un «CREATE» à la troisième, j'ai pu dépasser celle-ci. Mais il y a des tonnes de sections comme ça. Y a-t-il un moyen de contourner cela sans toute la modification? Comme une option pour mysqldump
ne rien produire qui nécessite des privilèges SUPER?
Il semble que beaucoup de gens aient eu des problèmes similaires, comme devoir courir sed
contre la sortie de mysqldump / mysqlbinlog! Je vais également poster sur le forum AWS - je pense vraiment que RDS devrait avoir un moyen plus tolérant d'importer depuis mysqldump, ou un outil spécifique qui peut être exécuté sur une base de données existante pour créer un vidage qui est conforme à la sécurité RDS. Je me demandais simplement si quelqu'un avait d'autres recettes ou astuces qui pourraient aider ici.
Merci,
Dave
--masterdata=2
. La ligne sera ensuite commentée dans le vidage.
log_bin_trust_function_creators
paramètre à 1, mais j'obtiens toujours la même erreur à la ligne 7844.