Назад | Перейти на главную страницу

Резервное копирование баз данных MySQL и пользователей из файлов

Я работаю над своим VPS с установленным Ubuntu 16.04. Сегодня во время бега sudo apt-get install git-core curl Я подошел к ошибке:

Setting up mysql-common (5.7.15-0ubuntu0.16.04.1) ...
update-alternatives: error: alternative path /etc/mysql/my.cnf.fallback doesn't exist
dpkg: error processing package mysql-common (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of libmysqlclient20:amd64:
 libmysqlclient20:amd64 depends on mysql-common (>= 5.5); however:
  Package mysql-common is not configured yet.

dpkg: error processing package libmysqlclient20:amd64 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libdbd-mysql-perl:No apport report written because the error message indicates its a followup error from a previous failure.

 libdbd-mysql-perl depends on libmysqlclient20 (>= 5.7.11); however:
  Package libmysqlclient20:amd64 is not configured yet.

dpkg: error processing package libdbd-mysql-perl (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of mysql-client-5.6:No apport report written because the error message indicates its a followup error from a previous failure.

 mysql-client-5.6 depends on libdbd-mysql-perl (>= 1.2202); however:
  Package libdbd-mysql-perl is not configured yet.
 mysql-client-5.6 depends on mysql-common (>= 5.5); however:
  Package mysql-common is not configured yet.

dpkg: error processing package mysql-client-5.6 (--configure):
 dependency problems - leaving unconfigured
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 mysql-common
 libmysqlclient20:amd64
 libdbd-mysql-perl
 mysql-client-5.6

Я обнаружил, что, вероятно, мои пакеты mysql повреждены, и мне нужно их исправить. Я использую более старую версию mysql 5.6 из-за целей совместимости приложений Jira, Confluence и Bitbucket, которые я размещаю.

Я попробовал несколько решений, чтобы решить эту проблему, но во время sudo dpkg -r mysql-common команда.

dpkg: dependency problems prevent removal of mysql-common:
 libmysqlclient20:amd64 depends on mysql-common (>= 5.5).
 mysql-client-5.6 depends on mysql-common (>= 5.5); however:
  Package mysql-common is to be removed.

dpkg: error processing package mysql-common (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 mysql-common

Совершенно не понимая, что я делаю, я удалил mysql-server с помощью sudo apt-get remove --purge команды. Все без решения проблемы с mysql-common.

Свежая установка mysql через sudo apt install mysql-server-5.6 команда также приводит к проблеме с mysql-common.

Я чувствую, что последнее, что я могу сделать, - это полностью удалить файлы, связанные с mysql, но до того, как мне нужно будет сделать резервную копию моих пользователей и баз данных.

Я не могу использовать mysqldump. Есть ли возможность сделать резервную копию всего, работая только с файлами?

Ну да. Но вы должны записать версию, которая последней работала с каталогом данных mysql, потому что переход на более новую основную версию не может быть выполнен простым копированием файлов. Итак, сделайте резервную копию каталога данных mysql - на всякий случай. Я бы на всякий случай создал отдельный архив tar.gz. Тогда у вас есть несколько вариантов.

  • удалите все конфликтующие пакеты, а затем установите нужный с помощью диспетчера пакетов. Если версия последнего будет отличаться от версии сервера mysql, который вы использовали ранее, вам понадобится дамп mysql для каждой базы данных.
  • если ваш менеджер пакетов не может предоставить эту версию явно, то самый простой способ получить их - это построить сервер mysql нужной версии из источников, установить его с настраиваемым префиксом и запустить вручную, указав свой каталог данных mysql , затем выполните дамп.