Próbowałem przenieść istniejącą bazę danych z MySQL działającego na EC2 do nowej instancji Amazon RDS (eksperyment, aby sprawdzić, czy możemy się poruszać). Jak dotąd nie idzie dobrze. Utknąłem przy początkowym imporcie przed skonfigurowaniem replikacji (instrukcje tutaj ).
Przygotowałem instancję RDS zgodnie z opisem i mogę się z nią połączyć z instancji EC2 przy użyciu mysql. Uruchomiłem polecenie mysqldump jako:
mysqldump --master-data --databases db1 db2 > dump.sql
Następnie próbował przesłać go do RDS za pomocą:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
Pierwszym problemem był wiersz 22 zrzutu:
CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Ta linia spowodowała błąd ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Nie ma problemu, po prostu skomentowałem tę linię i mam nadzieję, że uda się ją naprawić później za pomocą mysql.rds_set_external_master (). Ponowiona przesyłanie i ma bardzo podobny błąd: ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Sekcja wokół linii 7844 wygląda następująco:
/*!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` */;
Komentując pierwsze 2 wiersze i dodając „UTWÓRZ” do trzeciego, udało mi się przejść obok tego. Ale jest mnóstwo takich sekcji. Czy można to obejść bez całej edycji? Czy mysqldump
możesz nie produkować niczego, co wymaga uprawnień SUPER?
Wygląda na to, że wiele osób miało podobne problemy, na przykład musiało biec sed
z danymi wyjściowymi mysqldump / mysqlbinlog! Zamierzam także pisać na forum AWS - naprawdę uważam, że RDS powinien mieć bardziej tolerancyjny sposób importowania z mysqldump, lub konkretnego narzędzia, które można uruchomić na istniejącej bazie danych, aby utworzyć zrzut, który jest skargą na bezpieczeństwo RDS. Zastanawiałem się tylko, czy ktoś ma jakieś inne przepisy lub sztuczki, które mogą tu pomóc.
Dzięki,
Dave
--masterdata=2
. Linia zostanie następnie skomentowana na zrzucie.
log_bin_trust_function_creators
parametr na 1, ale nadal pojawia się ten sam błąd w wierszu 7844.