Внести в старые базы данных в MySQL?

Хорошо, так что, когда MySQL обновился некоторое время назад, он сломался. Это было просто не начало. Поэтому я попытался исправить это, но безуспешно.

Я наконец сдался, скопировал все каталоги & amp; файлы в / var / lib / mysql находятся в безопасном месте, apt-get purge mysql, затем apt-get install mysql.

Таким образом, сервер работает, но я, по всей видимости, не могу вернуть старые базы данных в пригодную для использования форму.

Я включил свою базу данных gallery3, просто скопировав каталог gallery3 из моего расположения mysql / backup. Но на самом деле моя установка gallery3 не говорила об этом. : /

Возможно, есть проблемы с разрешениями, но я действительно не разбираюсь в sql.

Любая помощь будет оценена.

0
задан 26 April 2013 в 19:15

1 ответ

Вы не получите свои базы данных таким образом. Если бы ваша старая версия MySQL была точно (!) Такой же, как та, которую вы используете сейчас, она, возможно, сработает, но только если вы переместите текущий / var / lib / mysql в нечто вроде /var/lib/mysql.old и переместите все содержимое старой резервной копии / var / lib / mysql, включая все подкаталоги, в / var / lib / mysql.

Ваша проблема в том, что вы сделали только необработанную копию данных из файлов, содержащих данные, но на самом деле вы не сделали резервную копию логики. Смотрите, если база данных создается как gallery3, она вставляет определенные строки и данные в словарь данных самой базы данных MySQL и в основную схему «mysql». Таким образом, копирование только в каталог, включающий файлы данных, не будет работать, так как - давайте назовем их ссылками - на эти файлы данных в новой настройке MySQL отсутствуют.

Кроме того, если вы запустили старую установку MySQL с базой данных по умолчанию типа «innodb» и не сделали резервную копию файлов ibdata1 и ib_logfiles0 / 1 в / var / lib / mysql, ваши данные наверняка будут потеряны, поскольку таблицы InnoDB полностью сохранены. внутри файла табличного пространства InnoDB (ibdata1), и только немного метаданных хранится в файлах в подкаталоге.

Лучший способ сделать простое резервное копирование перед такими большими сбоями - это сделать mysqldump вашей базы данных (он же схема) в файл .sql и повторно вставить его. Это называется «логической» резервной копией (а не физической), так как она сбрасывает каждую информацию, логически необходимую для перестройки вашей схемы БД, как это было раньше. Физическое резервное копирование не рекомендуется (только если вы точно знаете, что делаете и какие риски связаны с этим).

Надеюсь, это немного поможет.

0
ответ дан 26 April 2013 в 19:15

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

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