Ich habe versucht, eine vorhandene Datenbank von MySQL, das unter EC2 ausgeführt wird, auf eine neue Amazon RDS-Instanz zu verschieben (ein Experiment, um zu sehen, ob wir sie verschieben können). Bisher läuft es nicht gut. Ich stecke beim ersten Import fest, bevor ich die Replikation einrichte (Anweisungen hier ).
Ich habe die RDS-Instanz wie beschrieben vorbereitet und kann über MySQL von der EC2-Instanz aus eine Verbindung herstellen. Ich habe den Befehl mysqldump wie folgt ausgeführt:
mysqldump --master-data --databases db1 db2 > dump.sql
Dann wurde versucht, es auf RDS hochzuladen mit:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
Das erste Problem war in Zeile 22 der Müllkippe:
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Diese Zeile verursachte einen Fehler ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Kein Problem, habe diese Zeile einfach auskommentiert und hoffe, sie später über mysql.rds_set_external_master () zu beheben. Der Upload wurde wiederholt und es wurde ein sehr ähnlicher Fehler angezeigt : ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Der Abschnitt um die Linie 7844 sieht folgendermaßen aus:
/*!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` */;
Indem ich die ersten beiden Zeilen auskommentierte und der dritten ein 'CREATE' hinzufügte, konnte ich diese hinter mich bringen. Aber es gibt Unmengen solcher Abschnitte. Gibt es einen Ausweg ohne all die Bearbeitung? Wie eine Option, mysqldump
nichts zu produzieren, das SUPER-Privilegien benötigt?
Es scheint, als hätten viele Leute ähnliche Probleme gehabt, als sed
müssten sie gegen die Ausgabe von mysqldump / mysqlbinlog laufen! Ich werde auch im AWS-Forum posten - ich denke wirklich, RDS sollte eine tolerantere Art des Imports aus mysqldump haben oder ein bestimmtes Tool, das gegen eine vorhandene Datenbank ausgeführt werden kann, um einen Speicherauszug zu erstellen, der eine Beschwerde mit RDS-Sicherheit darstellt. Ich habe mich nur gefragt, ob jemand andere Rezepte oder Tricks hat, die hier helfen könnten.
Vielen Dank,
Dave
--masterdata=2
. Die Zeile wird dann im Dump auskommentiert.
log_bin_trust_function_creators
Parameter auf 1 zu ändern , aber immer noch den gleichen Fehler in Zeile 7844 erhalte.