Ho cercato di spostare un db esistente da MySQL in esecuzione su EC2 in una nuova istanza di Amazon RDS (un esperimento per vedere se possiamo spostarci). Finora non sta andando bene. Sono bloccato all'importazione iniziale prima di impostare la replica (istruzioni qui ).
Ho preparato l'istanza RDS come descritto e posso collegarmi ad essa dall'istanza EC2 usando mysql. Ho eseguito il comando mysqldump come:
mysqldump --master-data --databases db1 db2 > dump.sql
Quindi ha tentato di caricarlo su RDS con:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
Il primo problema era alla riga 22 della discarica:
CAMBIA MASTER IN MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Questa riga ha causato errori ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Nessun problema, ho appena commentato quella riga e spero di risolverlo in un secondo momento tramite mysql.rds_set_external_master (). Ritentato l'upload, e ottenuto un errore molto simile: ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. La sezione attorno alla linea 7844 è simile alla seguente:
/*!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` */;
Commentando le prime 2 righe e aggiungendo un "CREATE" alla terza, sono stato in grado di superare questa. Ma ci sono tonnellate di sezioni come questa. C'è un modo per aggirare questo senza tutte le modifiche? Ti piace un'opzione per mysqldump
non produrre nulla che abbia bisogno dei privilegi SUPER?
Sembra che molte persone abbiano avuto problemi simili, come dover correre sed
contro l'output di mysqldump / mysqlbinlog! Pubblicherò anche sul forum AWS - penso davvero che RDS dovrebbe avere un modo più tollerante di importare da mysqldump, o uno strumento specifico che può essere eseguito contro un db esistente per creare un dump che si lamenta della sicurezza RDS. Mi chiedevo solo se qualcuno avesse altre ricette o trucchi che potrebbero aiutare qui.
Grazie,
Dave
--masterdata=2
. La riga verrà quindi commentata nella discarica.
log_bin_trust_function_creators
parametro su 1, ma ottengo ancora lo stesso errore alla riga 7844.