cPanel. Обновление MySQL 5.5 до 5.7

На примере обновлю MySQL сервер с версии 5.5 до 5.7.
Перед выполнение обновления необходимо обязательно сделать резервные копии всех баз данных, в том числе и стандартных.

Откроем панель WHM и выберем в меню «Службы SQL (SQL Services)» — «Обновление MySQL/MariaDB (MySQL/MariaDB Upgrade)»

У меня была установлена версия MySQL 5.5, в предлагаемых версиях я выбрал сразу версию 5.7 и нажал «Далее», в следующем окне отобразились четыре предупреждения, которые я внимательно прочитал и отметил галочками, кратко опишу их:

1) MySQL сервер после обновления будет работать в строгом режиме, ну об этом я напишу в конце статьи.
2) Текущая версия MySQL сервера старее на несколько версий, ну это не проблема, в моем случае скрипт обновления автоматически сначала обновил до версии 5.6, а потом уже до 5.7, а также выполнил обновление и исправление таблиц в базах данных.
3) Необходимо выполнить резервную копию баз данных.
4) Возврат к предыдущим версиям MySQL не поддерживается, то есть после обновления через панель WHM поставить версии ниже уже нельзя, их не будет в списке и вручную это делать я не рекомендую.

В следующем окне было предложено выбрать тип обновления: «Автоматическое обновление» или «Интерактивное обновление», я выбрал интерактивное, по сути они почти одинаковы, только в интерактивном после каждого шага нужно нажимать «Далее», после обновления MySQL одним из шагов является повторная сборка EasyApache 4 с текущей активной конфигурацией. Если что, EasyApache 4 можно повторно собрать потом еще раз через меню «Software» — «EasyApache 4».

В моей случае повторная сборка EasyApache 4 не потребовалась, логи процесса обновления сохранились в директорию /var/cpanel/logs/mysql_upgrade.20190509-195153/, я также посмотрел ошибки MySQL в файле /var/lib/mysql/SERVERNAME.err, к счастью их не было, были только логи перезапуска MySQL.

Теперь самое интересное, после обновления MySQL 5.7 начал работать в строгом режиме, то есть в «sql_mode» добавилось несколько параметров, которые у меня не были активированы ранее, на большинство сайтов это не повлияло, например WordPress и phpBB, но один старый самописный сайт не открывался, отображалась ошибка:

Incorrect datetime value: ‘0000-00-00 00:00:00’ for column ‘timestamp_r’ at row 1

Я подключился к MySQL и посмотрел значение sql_mode:

mysql -u root -p
show variables like 'sql_mode';

После чего отобразилось:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Чтобы быстрее вернуть сайт к работоспособности я выполнил запрос:

SET GLOBAL sql_mode='NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO';

А также добавил в файл /etc/my.cnf:

sql_mode=NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO

И перезапустил MySQL сервер.
Готово, MySQL сервер обновлен.

Оставьте комментарий

Добавить комментарий