He estado tratando de mover un db existente de MySQL que se ejecuta en EC2 a una nueva instancia de Amazon RDS (un experimento para ver si podemos movernos). Hasta ahora, no va bien. Estoy atascado en la importación inicial antes de configurar la replicación (instrucciones aquí ).
He preparado la instancia RDS como se describe y puedo conectarme a ella desde la instancia EC2 usando mysql. Ejecuté el comando mysqldump como:
mysqldump --master-data --databases db1 db2 > dump.sql
Luego intenté subirlo a RDS con:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
El primer problema estaba en la línea 22 del basurero:
CAMBIAR MASTER A MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Esta línea causó un error ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. No hay problema, solo comenté esa línea y espero arreglarla más tarde a través de mysql.rds_set_external_master (). Juzgados de la carga, y consiguió un error muy similar: ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. La sección alrededor de la línea 7844 se ve así:
/*!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` */;
Al comentar las primeras 2 líneas y agregar un 'CREAR' a la tercera, pude superar esta. Pero hay toneladas de secciones como esta. ¿Hay alguna forma de evitar esto sin toda la edición? ¿Te gusta una opción para mysqldump
no producir nada que necesite SUPER privilegios?
¡Parece que muchas personas han tenido problemas similares, como tener que correr sed
contra la salida de mysqldump / mysqlbinlog! También voy a publicar en el foro de AWS, realmente creo que RDS debería tener una forma más tolerante de importar desde mysqldump, o una herramienta específica que se pueda ejecutar contra un db existente para crear un volcado que es una queja con la seguridad de RDS. Me preguntaba si alguien tenía otras recetas o trucos que pudieran ayudar aquí.
Gracias,
Dave
--masterdata=2
. La línea se comentará en el volcado.
log_bin_trust_function_creators
parámetro a 1, pero sigo teniendo el mismo error en la línea 7844.