Я запускаю ежедневную резервную копию mysqldump производственной базы данных (mysql version 5.1.66):
mysqldump --user=username --password=secret -C -e --create-options --hex-blob --net_buffer_length=5000 databasename > file
Я также ежедневно восстанавливаю эту базу данных на своей машине разработки (mysql версия 5.6.12)
mysql --user=username --password=secret databasename < file
Я получаю ошибку:
ОШИБКА 1813 (HY000) в строке 25: существует табличное пространство для таблицы 'databasename
. tablename
'. Пожалуйста, ОТКРЫВАЙТЕ табличное пространство до ИМПОРТА.
Мое чтение указывает на то, что для базы данных innodb mysql требуется команда:
ALTER TABLE tbl_name DISCARD TABLESPACE;
который должен быть запущен до того, как таблица будет отброшена - кажется, что сбросить таблицу недостаточно, чтобы избавиться от своих индексов. (мой сервер разработки использует параметр innodb_file_per_table)
Я не хочу использовать параметр "заменить", потому что я могу потенциально иметь данные в моей базе данных разработки, которые были удалены в производственной базе данных.
btw после ошибки таблицы не читаются, но перезапуск mysqld исправляет его.
Итак, вопрос в том, есть ли какая-либо опция mysql dump, которая поможет исправить эту проблему или есть другой способ импортировать данные, которые предотвратят ошибку?
заблаговременно зачитывать.