Я намагався перемістити існуючий db з MySQL, що працює на EC2, до нового екземпляра Amazon RDS (експеримент, щоб побачити, чи зможемо ми перейти через). Поки що це не добре. Я затримався на початковому імпорті перед налаштуванням реплікації ( тут інструкції ).
Я підготував екземпляр RDS, як описано, і можу підключитися до нього з екземпляра EC2 за допомогою mysql. Я запустив команду mysqldump як:
mysqldump --master-data --databases db1 db2 > dump.sql
Потім спробували завантажити його в RDS за допомогою:
mysql -h RDSHost -P 3306 -u rdsuser --password=rdspassword < dump.sql
Перша проблема була в рядку 22 звалища:
ЗМІНИ МАЙСТЕР НА MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 106;
Цей рядок викликав помилку ERROR 1227 (42000) at line 22: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Немає проблем, просто прокоментував цей рядок і сподіваюся виправити його пізніше через mysql.rds_set_external_master (). Повторена завантаження, і отримав дуже схожу помилку: ERROR 1227 (42000) at line 7844: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
. Розділ навколо рядка 7844 виглядає приблизно так:
/*!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` */;
Коментуючи перші 2 рядки та додавши «СТВОРИТИ» до третього, я зміг подолати цей. Але є тони таких розділів. Чи є спосіб обійти це питання без усієї редакції? Як варіант, щоб mysqldump
не створювати нічого, що потребує привілеїв SUPER?
Схоже, у багатьох людей виникли подібні проблеми, як, наприклад, доводиться бігати sed
проти виходу mysqldump / mysqlbinlog! Я також буду публікувати на форумі AWS - я дійсно думаю, що RDS повинен мати більш толерантний спосіб імпорту з mysqldump, або певний інструмент, який можна застосувати проти існуючого db, щоб створити дамп, який скаржиться на безпеку RDS. Просто цікаво, чи є у когось інші рецепти чи хитрощі, які можуть допомогти тут.
Спасибі,
Дейв
--masterdata=2
. Потім рядок буде прокоментовано на смітнику.
log_bin_trust_function_creators
параметр на 1, але все одно отримую ту ж помилку в рядку 7844.