Есть ли способ получить базу данных MySQL из резервной копии / var?

Я повышен с 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. Вероятно, на это есть веские причины, но пока это не принесло мне никаких бутербродов.

1
задан 20 November 2013 в 09:05

1 ответ

InnoDB - это механизм хранения, как и MyISAM .

Старый метод копирования файлов все еще работает с базами данных MyISAM, но InnoDB имеет некоторые функции (такие как соблюдение ACID и более точные элементы управления блокировками), которые идут по цене, которая больше не работает.

Этот поток в StackOverflow содержит ответы на , как восстановить базу данных InnoDB из файлов.

0
ответ дан 20 November 2013 в 09:05

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

Похожие вопросы: