Недавно WordPress при проверке здоровья сайта начал рекомендовать использование версии MySQL 8. В этой статье расскажем, как перенести сайт на WordPress на MySQL 8 на примере нашего хостинга. Спойлер: это намного легче, чем может показаться.
Что будет, если я пока не хочу мигрировать сайт?
У старых версий MySQL производительность гораздо ниже, большая часть новых уязвимостей не закрыты, а ещё могут быть ограничения в использовании новых функций. К тому же, новые версии WordPress и плагинов не перестанут выходить, а ваша текущая конфигурация может стать несовместимой с ними.
В версии MySQL 8 оптимизировали работу с индексами, улучшили работу с запросами, а большие объемы данных обрабатываются эффективнее. Это дает сайту на WordPress буст по скорости и стабильности. Из раздела безопасности добавили улучшенные методы аутентификации, управление паролями и расширенные возможности контроля доступа. А ещё внедрили множество новых улучшений: поддержка оконных функций (window functions), общие табличные выражения (CTE), JSON таблицы и многое другое. Вывод простой: лучше переносить сайт на новые версии как можно раньше. К тому же, сделать это легко.
Шаг 1. Создаём базу данных
В пункте управления аккаунтом переходим в раздел «Хостинг», далее в пункт «Базы данных». После нажатия на кнопку «Создать базу данных» выбираем версию MySQL 8:
Шаг 2. Переносим содержимое базы данных
Первым делом создаем дамп текущей базы данных, он сохранится в корне аккаунта. После этого его нужно будет импортировать в новую базу данных:
Импорт дампа происходит в течении нескольких минут в зависимости от размера базы данных.
Есть еще один вариант переноса базы данных — через консоль, подключившись к аккаунту по ssh.
Для создания дампа используется команда:
mysqldump -Q --max-allowed-packet=1M --extended-insert=false -u dbuser -p dbname > dump.sql
Для импорта:
mysql -h 127.0.0.1 -P 3308 -uDBlogin -pDBpass DBname < backup.sql
Шаг 3. Редактируем конфигурационный файл
В разделе «Файловый менеджер» переходим в директорию с файлами сайта. Открываем для редактирования файл wp-config.php и меняем строку:
/** Имя сервера базы данных */
define( 'DB_HOST', 'localhost' );
На следующую:
/** Имя сервера базы данных */
define( 'DB_HOST', 'localhost:/var/run/mysql8-container/mysqld.sock' );
Готово! После этого ваш сайт начнет работать с MySQL 8, и вы сможете обновить его до последней стабильной версии.
А вы сразу обновляетесь до новых версий? Делитесь в комментариях!