Недавно я обновил свой промежуточный сервер базы данных с 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
? Или я могу использовать другое имя базы данных при восстановлении?
В частности, на ваш вопрос об использовании другого имени при восстановлении: с mysqldump вы можете либо сделать mysqldump databasename
или mysqldump --databases databasename
. Первое не ставит create db
заявление в нем, последний делает.
Когда вы сделали дамп с помощью предыдущего оператора, вы можете просто вручную создать новый db и загрузить дамп чем-то вроде mysql newdbname < dump.sql
. В последнем случае вы можете просто открыть файл дампа и изменить имя.
Замечание, я думаю, что это плохой дизайн в MySQL mysqldump
часть, чтобы иметь эту разницу, BTW. Если вы делаете резервную копию без --databases
оператор, вы должны сначала создать базу данных, прежде чем вы сможете восстановить. И эта база данных может иметь другую кодировку или сопоставление, чем исходная. На мой взгляд, если вы дампите базу данных, она должна содержать все данные и метаданные. То же самое и с необходимостью поставки --routines
и --events
. Я могу представить такие варианты, как --no-routines
может быть удобно, но по умолчанию не демпинг рутины? Хм.