Сегодня мы расскажем как обновить WordPress до MySQL 8. Это то, что каждый может сделать, кто отвечает за управление сервером.

Если бы мы обратились к заметкам по обновлению MySQL 8, мы увидели бы, что обновление с версии старше 5.7.x не поддерживается и не является опцией. Мы предпочитаем верить команде MySQL на это и не рисковать обновлением напрямую.

Шаги по обновлению с 5.7 до 8.0 во многом схожи, поэтому мы просто кратко расскажем о них. За исключением нескольких предостережений, на которые вам нужно будет обратить внимание. Мы остановимся в деталях на этом ниже. Что оставляет нас со следующим планом:

  1. Подготовьтесь к обновлению до последней версии 5.7.x
  2. Обновить до последней версии 5.7.x
  3. Проверьте целостность базы данных
  4. Подготовьтесь к обновлению до последней версии 8.0.x
  5. Обновить до последней версии 8.0.x
  6. Исправить соединение с базой данных WordPress
  7. Проверьте целостность базы данных

Так что давайте просто перейдем прямо к этому.

 

Шаг 1. Подготовьтесь к обновлению до последней версии 5.7.x

Сделайте резервную копию вашей БД

В нашем случае мы выбрали холодное резервное копирование, а не традиционный подход sqldump. При холодном резервном копировании все, что вам нужно, это аккуратно завершить процесс сервера MySQL и скопировать его каталог данных в безопасное место:

$ sudo systemctl stop mysqld
$ sudo tar zcvf /backup/mysql-cold-backup.20191115.001.tar.gz /var/lib/mysql

 

Который производит очень хороший архив .tar.gz всего, что MySQL хранит в своем хранилище. И эту резервную копию можно восстановить, просто распаковав этот архив обратно в каталог данных MySQL.

 

Получить обновление пакета репозитория

Мы всегда рекомендуем использовать официальные репозитории для получения пакетов обновления. В случае MySQL вам нужно перейти на http://repo.mysql.com/ и перейти к менеджерам пакетов (yum в нашем случае). Где вы найдете релиз-пакет, который добавит репозиторий на сервер:

$ sudo yum remove mysql-community-release
$ sudo yum install http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql57-community-release-el7-10.noarch.rpm
$ sudo yum makecache

 

Обратите внимание, что первая команда – remove, ранее добавленный репозиторий релизов MySQL. Если вы не добавили его через менеджер пакетов, то можете пропустить эту команду.

Теперь у вас есть все готово для процесса обновления

 

Шаг 2. Обновите MySQL до 5.7.x

Сделать обновление

Обновление самих пакетов так же тривиально:

$ sudo systemctl stop mysqld
$ sudo yum update mysql-community-server mysql-community-client

 

Перенос данных

Мы заметили, что многие люди натыкаются на тот факт, что им также необходимо перенести данные из старых в новые версии! Без переноса данных ваша база данных может быть повреждена. В случае обновления 5.6 -> 5.7 мы можем перенести данные без запуска сервера. Это делается с помощью:

$ sudo mysql_upgrade -u root -p

 

В целом, миграция данных в большинстве случаев должна проходить гладко (если мы будем следовать рекомендациям команды MySQL здесь). Это было сделано для нас, но если вы наткнулись на некоторые сообщения об ошибках во время этого процесса, пожалуйста, дайте нам знать в комментариях.

 

Шаг 3. Проверьте целостность базы данных

Теперь мы можем запустить нашу недавно обновленную базу данных. Если все выше было сделано без каких-либо сообщений об ошибках, то это должно просто работать:

$ sudo systemctl start mysqld

 

Для более тщательной проверки вы можете просто проверить состояние своего веб-сайта, если WordPress может подключиться и не показывает никаких ошибок – мы все готовы к этому этапу и можем перейти к обновлению до MySQL 8.

 

Шаг 4. Подготовьтесь к обновлению до последней версии 8.0.x

Сделайте резервную копию снова

Этот шаг очень похож на подготовку к обновлению с 5.6 до 5.7. Вы ДОЛЖНЫ сделать резервную копию снова, поскольку данные больше не совпадают:

$ sudo systemctl stop mysqld
$ sudo tar zcvf /backup/mysql-cold-backup.20191115.002.tar.gz /var/lib/mysql

 

Удалите старый и добавьте новый репозиторий пакетов

$ sudo yum remove mysql-community-release
$ sudo yum install http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql80-community-release-el7-1.noarch.rpm
$ sudo yum makecache

 

Шаг 5. Обновите MySQL до 8.0.x

Сделать обновление

$ sudo systemctl stop mysqld
$ sudo yum update mysql-community-server mysql-community-client

 

Перенос данных

ПримечаниеИтак, вот первое отличие от предыдущих обновлений – mysql_upgrade в версии 8.0.x необходим работающий сервер!

$ sudo systemctl start mysqld
$ sudo mysql_upgrade -u root -p

 

То же, что и раньше, если на этом этапе вы столкнетесь с сообщениями об ошибках или предупреждениями, перейдите к комментариям здесь.

 

Шаг 6. Исправить соединение с базой данных WordPress

Теперь, после того как мы обновили MySQL до последней версии, наш WordPress перестал работать! Все, что мы видим на странице моего сайта, это сообщение об ошибке:

ОшибкаError establishing a database connection.

 

Вы можете увидеть это в нашей другой статье о том, как исправить соединение с базой данных WordPress для MySQL 8.

 

Шаг 7. Проверка целостности базы данных

Так как мы уже запустили MySQL с очевидными шагами, все, что нужно сделать, это убедиться, что наши сайты загружаются и работают правильно.

Пожалуйста, дайте нам знать в комментариях, если у вас возникли какие-либо проблемы с этим руководством, и если вам нужны какие-либо дополнения или обновления!

Источник: AndreyEx.ru