Я повышен с Ubuntu 12.10
до Ubuntu 13.10
. Через некоторое время я обнаружил, что я не экспортировал все свои базы данных MySQL. Некоторые из них отсутствуют. У меня все еще есть резервная копия из моего раздела /var/
, но я не могу просто скопировать недостающие базы данных (каталоги) из /var/lib/mysql/
, это не будет работать. MySQL-демон не сможет перезапуститься.
Я также не могу заменить всю текущую /var/lib/mysql/
резервной копией, просто я могу экспортировать отсутствующие таблицы, переместить новый каталог обратно и импортировать экспортированные таблицы. Базы данных и таблицы действительно отображались в phpMyAdmin
, но все содержимое было пустым.
Раздражает то, что демон не сможет перезапуститься после быстрой игры. MySQL превратил * в чувствительную маленькую девочку. когда я перемещаю точную копию моей (новой, нетронутой и после обновления) директории mysql обратно, она все равно не перезапускается, и мне приходится apt-get install mysql-server-5.5 --reinstall
, чтобы она работала agian.
Итак, есть ли способ вернуть базу данных из резервных копий файлов? Они сидят там так удобно, названы точно так же, как база данных, а файлы названы точно так же, как таблицы.
*) Раньше это работало. Обычно я экспортирую свои вещи, поэтому в прошлый раз я делал это несколько лет назад, но раньше это работало. Теперь MySQL действует как кричащий ребенок. Новое не всегда лучше.
По крайней мере MongoDB просто ест все файлы, которые вы положили в /var/lib/mongodb
, если это правильно bson
.
Хотя журнал ошибок очень многословен, он мне не очень помогает.
Сотня из них:
131120 5:23:48 [ОШИБКА] Не удается найти или открыть таблицу some_database / some_table из словаря внутренних данных InnoDB, хотя файл .frm для таблицы существует , Может быть, вы удалили и заново создали файлы данных InnoDB, но забыли удалить соответствующие файлы .frm таблиц InnoDB, или вы переместили файлы .frm в другую базу данных? или таблица содержит индексы, которые не поддерживает эта версия движка. См. http://dev.mysql.com/doc/refman/5.5/en/innodb-trou planning.html , как решить проблему.
И некоторые другие сообщения о InnoDB, которые я не могу воспроизвести, потому что я случайно обновил журнал в моем редакторе при переустановке mysql в n-й раз.
Что это за штука в InnoDB? Это как слабый маленький кричащий брат или сестра из растущего и универсального MySQL. Они сделали его по умолчанию на сервере 5.5. Вероятно, на это есть веские причины, но пока это не принесло мне никаких бутербродов.
InnoDB - это механизм хранения, как и MyISAM .
Старый метод копирования файлов все еще работает с базами данных MyISAM, но InnoDB имеет некоторые функции (такие как соблюдение ACID и более точные элементы управления блокировками), которые идут по цене, которая больше не работает.
Этот поток в StackOverflow содержит ответы на , как восстановить базу данных InnoDB из файлов.