Я могу скопировать всю/var/lib/mysql папку в другой сервер? (mysql по сравнению с mariadb, различными версиями)

Я раньше имел систему Linux (LMDE) с MySQL. Система использовала innodb_file_per_table для большинства баз данных. (не уверенный в версии, независимо от того, что является "последним" в LMDE),

Я нахожусь теперь в новой системе (Manjaro/Arch) с MariaDB.

$ mysql --version
mysql  Ver 15.1 Distrib 10.0.15-MariaDB, for Linux (x86_64) using readline 5.1

Старая система имела много больших баз данных, которые я действительно предпочту не иметь необходимость скопировать с mysqldump. Я очень предпочел бы копировать/var/lib/mysql папку со старой системы.

Действительно ли это возможно?

9
задан 13 January 2015 в 07:38
1 ответ

Да, это возможно. (Я понял это, когда писал вопрос)

  1. Установите MariaDB в новую систему Arch, убедитесь, что она работает.
    Внесите изменения в /etc/mysql/my.cnf. Например. innodb_file_per_table.
    (дополнительная информация выходит за рамки этого вопроса)
  2. sudo systemctl stop mysqld .
    (Вы хотите остановиться на обоих серверах, но в моем случае другой уже был выключен)
  3. Переименуйте папку / var / lib / mysql, например в /var/lib/_mysql.
  4. Скопируйте старую папку / var / lib / mysql из старой системы Debian (LMDE).
  5. Восстановите право собственности на файл в mysql: mysql для всего в / var / lib / mysql:
    sudo chown -R mysql: mysql / var / lib / mysql
  6. sudo systemctl start mysqld .
    . -> Не удалось выполнить задание mysqld.service. См. "Systemctl status mysqld.service" и "journalctl -xe" для подробностей.
  7. sudo systemctl status mysqld .
    -> Это показывает, что служба работает, но что-то идет не так. Для этого предназначен mysql_upgrade.
  8. mysql_upgrade -u root -p
    Примечания:
    • Это пароль root mysql из старой системы!
    • Мне пришлось удалить одну оставшуюся папку из / var / lib / mysql из-за неверного имени базы данных.
    • Файл / var / lib / mysql / mysql_upgrade_info должен быть доступен для записи.
    • Процесс может занять некоторое время.
  9. sudo systemctl restart mysqld .

CAVEAT: Очевидно, вы не можете перейти на более раннюю версию. младшая версия MySQL. Я попытался перенести свои базы данных на MySQL 5.5 (точнее, на соответствующую MariaDB), но сервер не запускался. Вместо этого мне пришлось установить MySQL 5.6. (MariaDB, соответствующая MySQL 5.6, недоступна в моем дистрибутиве Linux).

20
ответ дан 2 December 2019 в 22:23

Теги

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