Что касается импорта любых данных MySQL, необходимо учитывать три (3) вещи.
MyISAM
Импорт таблицы MyISAM - это просто перемещение трех файлов с расширениями .frm
,Файлы .MYD
и .MYI
для данной таблицы в папку MySQL.Например, если имя таблицы - mydata, то три (3) файла
mydata.frm
mydata.MYD
mydata.MYI
Следующим может быть кошмар ночных кошмаров.Импорт InnoDB полностью зависит от многих факторов, относящихся к одной из двух категорий:
Все страницы данных и индексов InnoDB расположены в/var/lib/mysql/ibdata1
.Этот файл должен быть перемещен с исходного компьютера (Server-S) на целевой компьютер (Server-T) и размещен по тому же абсолютному пути.На самом деле, вот шокер: Server-S и Server-T должны быть одинаковыми.Другими словами, вы не можете импортировать и экспортировать файлы InnoDB .ibd
на другие машины.Их можно импортировать и экспортировать только на том же компьютере, на котором была создана .ibd
.
Вам также необходимо переместить / var / ib / mysql / ib_logfile0 и / var / ib / mysql / ib_logfile1 с сервера-S и поместить их в тот же абсолютный путь на Server-T.
Вы также должны убедиться, что каждая переменная InnoDB, установленная в /etc/my.cnf из Server-S, должна быть установлена в / etc / my.cnf на сервере-T.
Для каждой таблицы InnoDB будет два файла.Например, если таблица InnoDB в базе данных mydata называется mytable, у вас будет /var/lib/mysql/mydata/mytable.frm
и /var/lib/mysql/mydata/mytable.ibd.Файл .ibd
содержит данные и индексные страницы для таблицы.Чтобы импортировать отдельную таблицу, необходимо
- Поместить
mytable.frm
в /var/lib/mysql/mydata folder
на сервере-T - Поместить
mytable.ibd
в /var/lib/mysql/mydata folder
на сервере-T - Выполнить
ALTER TABLE mydata.mytable IMPORT TABLESPACE;
Убедитесь, что у вас есть /var/lib/mysql/ibdata1
в том же месте, откуда он был импортирован.
Мораль истории
Пожалуйста, не используйте методы IMPORT TABLESPACE на разных серверах.Просто сделайте mysqldump из всего и импортируйте mysqldump.Логические дампы - всегда самый безопасный путь !!!