Вы можете получить доступ к RDS экземплярам через EIP или из ECS через частную сеть.
Подробную информацию о том, как создать и подключиться к ECS, смотрите Как создать и подключиться к ECS?
Убедитесь, что версия клиента MySQL совпадает с версией движка БД вашего экземпляра RDS for MySQL. Как MySQL, так и его клиент включают встроенные утилиты mysqldump и mysql.
После миграции данных в RDS конфигурации IP‑адресов приложений часто требуют обновления. RDS упрощает этот процесс. Он позволяет изменять плавающие IP‑адреса экземпляров, снижая сложность миграции и затраты. Для подробностей см. Изменение плавающего IP-адреса.
Системные базы данных RDS mysql и sys не могут быть импортированы из одного экземпляра RDS for MySQL в другой.
Перед миграцией базы данных в RDS, её данные необходимо экспортировать.
С mysql база данных требуется для RDS управления. При экспорте структуры таблиц не указывайте --all-database. В противном случае произойдет ошибка базы данных.
mysqldump --databases <DB_NAME> --single-transaction --order-by-primary --hex-blob --no-data --routines --events --set-gtid-purged=OFF -u <DB_USER> -p -h<DB_ADDRESS> -P <DB_PORT>|sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' -e 's/DEFINER[ ]*=.*FUNCTION/FUNCTION/' -e 's/DEFINER[ ]*=.*PROCEDURE/PROCEDURE/' -e 's/DEFINER[ ]*=.*TRIGGER/TRIGGER/' -e 's/DEFINER[ ]*=.*EVENT/EVENT/' ><BACKUP_FILE>
Введите пароль к базе данных при запросе.
Пример:
mysqldump --databases rdsdb --single-transaction --order-by-primary --hex-blob --no-data --routines --events --set-gtid-purged=OFF -u root -p -h 192.168.151.18 -P 3306 |sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' -e 's/DEFINER[ ]*=.*FUNCTION/FUNCTION/' -e 's/DEFINER[ ]*=.*PROCEDURE/PROCEDURE/' -e 's/DEFINER[ ]*=.*TRIGGER/TRIGGER/' -e 's/DEFINER[ ]*=.*EVENT/EVENT/' > dump-defs.sql
Введите пароль:
Если вы используете mysqldump версии ниже 5.6, удалите --set-gtid-purged=OFF перед выполнением этой команды.
После выполнения этой команды будет dump-defs.sql файл будет создан следующим образом:
[rds@localhost ~]$ ll dump-defs.sql-rw-r-----. 1 rds rds 2714 Sep 21 08:23 dump-defs.sql
С mysql база данных требуется для RDS управления. При экспорте данных не указывайте --all-database. В противном случае произойдет ошибка базы данных.
mysqldump --databases <DB_NAME> --single-transaction --hex-blob --set-gtid-purged=OFF --no-create-info --skip-triggers -u <DB_USER > -p -h<DB_ADDRESS> -P<DB_PORT > -r<BACKUP_FILE>
Подробную информацию о параметрах в предыдущей команде смотрите 2.
Введите пароль к базе данных при запросе.
Пример:
mysqldump --databases rdsdb --single-transaction --hex-blob --set-gtid-purged=OFF --no-create-info --skip-triggers -u root -p -h 192.168.151.18 -P 3306 -r dump-data.sql
Если вы используете mysqldump версии ниже 5.6, удалите --set-gtid-purged=OFF перед выполнением этой команды.
После выполнения этой команды будет dump-data.sql файл будет создан следующим образом:
[rds@localhost ~]$ ll dump-data.sql-rw-r-----. 1 rds rds 2714 Sep 21 08:23 dump-data.sql
Вы можете подключить ваш клиент к RDS и импортировать экспортированные файлы SQL в RDS.
Если исходная база данных содержит триггеры, хранимые процедуры, функции или события, необходимо установить log_bin_trust_function_creators на ON на целевой базе данных перед импортом данных.
# mysql -f -h<RDS_ADDRESS> -P<DB_PORT>-u root -p < <BACKUP_DIR>/dump-defs.sql
Пример:
# mysql -f -h 172.16.66.198 -P 3306 -u root -p < dump-defs.sql
Введите пароль:
Если вы планируете импортировать SQL‑операторы таблицы в RDS, укажите базу данных (mydb)
в команде. В противном случае может появиться сообщение об ошибке "No database selected". Пример:
# mysql -f -h 172.16.66.198 -P 3306 -u root -p mydb < dump-defs.sql
.# mysql -f -h<RDS_ADDRESS> -P<DB_PORT> -u root -p < <BACKUP_DIR>
хранится.
Пример:
# mysql -f -h 172.16.66.198 -P 3306 -u root -p < dump-data.sql
Если вы хотите импортировать SQL‑операторы таблицы в RDS, укажите базу данных (mydb)
в команде. В противном случае может появиться сообщение об ошибке "No database selected". Пример:
Введите пароль:
mysql> show databases;
Следующий результат указывает, что база данных rdsdb была импортирована.
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || rdsdb || mysql || performance_schema |+--------------------+4 rows in set (0.00 sec)