Как переименовать экземпляр базы данных MySQL, размещенной на Amazon RDS - PullRequest
0 голосов
/ 28 ноября 2011

Я попытался с помощью команды переименовать базу данных, но это не удается из-за следующей ошибкиЯ также не вижу возможности остановить экземпляр RDS через консоль Amazon RDS.

mysql> rename database foo to foo_orig;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database foo to foo_orig' at line 1

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

команда была удалена, как упомянуто @ajreal, однако любое обслуживание файловой системы mysql опасно, если не сказать больше.Одна небольшая ошибка, и ваша служба mysql не запустится.

Рекомендуемый метод - экспортировать всю базу данных в файл sql и снова импортировать ее под другим именем.Вы можете перевести свой сайт в режим обслуживания, чтобы никто не читал и не записывал данные во время этого процесса.

mysqldump -u username -ppassword old_database_name > dump.sql

, а затем импортировал его на тот же сервер:

mysql -u username -ppassword new_database_name < dump.sql
2 голосов
/ 28 ноября 2011

Это утверждение было добавлено в MySQL 5.1.7, но было признано опасным и было удалено в MySQL 5.1.23.

С http://dev.mysql.com/doc/refman/5.1/en/rename-database.html

Слишком мало шансов, что Amazon RDS использует версию менее 5.2.
Если у вас есть доступ к серверу mysql, вы можете попробовать: -

  1. остановка демона mysql
  2. переход к каталогу данных
  3. mv $ old_name $ new_name
  4. перезапуск демона mysql
  5. вход в базу данных mysql
  6. обновить все привилегии для вашего $ old_name до $ new_name (под таблицей mysql.db)
  7. сбросить привилегии
...