Имя базы данных MySQL с дефисом

Я недавно обновил свой сервер промежуточной базы данных с MySQL 5.0.84 до 5.1.72. Я пытаюсь восстановить mysqldump после обновления. Имя базы данных в дампе gss-app, Но имя папки базы данных под /var/lib/mysql оказалось gss@022dapp, но когда я вхожу в MySQL с помощью mysql -u root -p и введите show databases; это перечисляет имя базы данных как gss-app только и я могу Use Database gss-app и перечислите таблицы, используя show tables команда.

Восстановление не удалось с ошибкой Got a packet bigger than --max_allowed_packet size, Тогда база данных была частично восстановлена, и я воспользовался этой возможностью, чтобы переименовать gss@022dapp папка для gss-app и вошел в оболочку mysql.

Это перечислило имя базы данных как @mysql@gss-app и я не смог попасть в базу данных. Теперь я запускаю восстановление базы данных еще раз с --max_allowed_packet_size=1024M и я вижу gss@022dapp папка была создана в /var/lib/mysql,

Должен ли я беспокоиться об имени папки в /var/lib/mysql? Или я могу использовать другое имя базы данных при восстановлении?

1 ответ

В частности, на ваш вопрос об использовании другого имени при восстановлении: с помощью mysqldump вы можете сделать mysqldump databasename или же mysqldump --databases databasename, Бывший не ставит create db Заявление в нем последнее делает.

Когда вы сделали дамп с помощью предыдущего оператора, вы можете просто вручную создать новую базу данных и загрузить дамп с чем-то вроде mysql newdbname < dump.sql, В случае последнего, вы можете просто открыть свой файл дампа и изменить имя.

Sidenote, я думаю, что это плохой дизайн на MySQL mysqldump часть, чтобы иметь эту разницу, кстати. Если вы делаете резервную копию без --databases Заявление, вы должны сделать базу данных, прежде чем вы сможете восстановить. И эта база данных может иметь другую кодировку или сопоставление, чем та, которая изначально была в базе данных. На мой взгляд, если вы сбросите базу данных, она должна содержать все данные и метаданные. То же самое касается необходимости поставки --routines а также --events, Я могу представить варианты, такие как --no-routines может быть удобно, но по умолчанию не дамп рутины? Хм.

Другие вопросы по тегам