Сегодня мы расскажем как обновить WordPress до MySQL 8. Это то, что каждый может сделать, кто отвечает за управление сервером.
Если бы мы обратились к заметкам по обновлению MySQL 8, мы увидели бы, что обновление с версии старше 5.7.x не поддерживается и не является опцией. Мы предпочитаем верить команде MySQL на это и не рисковать обновлением напрямую.
Шаги по обновлению с 5.7 до 8.0 во многом схожи, поэтому мы просто кратко расскажем о них. За исключением нескольких предостережений, на которые вам нужно будет обратить внимание. Мы остановимся в деталях на этом ниже. Что оставляет нас со следующим планом:
Так что давайте просто перейдем прямо к этому.
В нашем случае мы выбрали холодное резервное копирование, а не традиционный подход 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. Если вы не добавили его через менеджер пакетов, то можете пропустить эту команду.
Теперь у вас есть все готово для процесса обновления
Обновление самих пакетов так же тривиально:
$ sudo systemctl stop mysqld $ sudo yum update mysql-community-server mysql-community-client
Мы заметили, что многие люди натыкаются на тот факт, что им также необходимо перенести данные из старых в новые версии! Без переноса данных ваша база данных может быть повреждена. В случае обновления 5.6 -> 5.7 мы можем перенести данные без запуска сервера. Это делается с помощью:
$ sudo mysql_upgrade -u root -p
В целом, миграция данных в большинстве случаев должна проходить гладко (если мы будем следовать рекомендациям команды MySQL здесь). Это было сделано для нас, но если вы наткнулись на некоторые сообщения об ошибках во время этого процесса, пожалуйста, дайте нам знать в комментариях.
Теперь мы можем запустить нашу недавно обновленную базу данных. Если все выше было сделано без каких-либо сообщений об ошибках, то это должно просто работать:
$ sudo systemctl start mysqld
Для более тщательной проверки вы можете просто проверить состояние своего веб-сайта, если WordPress может подключиться и не показывает никаких ошибок — мы все готовы к этому этапу и можем перейти к обновлению до MySQL 8.
Этот шаг очень похож на подготовку к обновлению с 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
$ sudo systemctl stop mysqld $ sudo yum update mysql-community-server mysql-community-client
$ sudo systemctl start mysqld $ sudo mysql_upgrade -u root -p
То же, что и раньше, если на этом этапе вы столкнетесь с сообщениями об ошибках или предупреждениями, перейдите к комментариям здесь.
Теперь, после того как мы обновили MySQL до последней версии, наш WordPress перестал работать! Все, что мы видим на странице моего сайта, это сообщение об ошибке:
Вы можете увидеть это в нашей другой статье о том, как исправить соединение с базой данных WordPress для MySQL 8.
Так как мы уже запустили MySQL с очевидными шагами, все, что нужно сделать, это убедиться, что наши сайты загружаются и работают правильно.
Пожалуйста, дайте нам знать в комментариях, если у вас возникли какие-либо проблемы с этим руководством, и если вам нужны какие-либо дополнения или обновления!