В интерфейсе обновления Битрикс многие замечали предупреждение:

"С 30 июня 2019 года будет ограничена поддержка наших продуктов на MySql MariaDB версии ниже 10.0.5. Вы используете версию MySql MariaDB '5.5.60-MariaDB'. Пожалуйста, запланируйте обновление MySql или обратитесь в службу технической поддержки вашего хостинга."

Для получения свежих обновлений нужно обновить MariaDB. Из чужого опыта узнал, что до последних версий лучше не обновляться. Обновимся до версии 10.1, Битрикс 18.1.3 успешно протестирован на этой версии.

Помните, что при обновлении могут пострадать файлы БД или новая версия MariaDB будет не совместима с вашим кодом. Всегда будьте готовы к удалению и восстановлению всех баз данных на случай повреждения или даунгрейда.

Для начала нужно сделать бэкап всех баз данных. Напомню, что сделать его можно так (на примере базы test_db):

mysqldump -u root -p -f test_db > test_db.sql

Вывести список баз данных на сервере:

mysql -u root -p -e "SHOW DATABASES;"

Скопируем на всякий случай папку с данными mysql, в этой папке лежат все файлы БД и метаинфы:

cp -a /var/lib/mysql/ /var/lib/mysql_backup

Останавливаем сервис:

systemctl stop mariadb

Добавляем репозиторий с версией 10.1. Открываем файл и заполняем его:

nano /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1

Запускаем установку:

yum install MariaDB-client MariaDB-server

Запускаем сервис

systemctl start mariadb

Запускаем апргрейд баз, эта команда проверит, что системные и пользовательские таблицы совместимы и готовы к работе с новой версией MariaDB.

mysql_upgrade -u root -p

Проверка сайта в Битриксе покажет, что используется непустой sql_mode, чтобы исправить это добавляем в файле /bitrix/php_interface/after_connect_d7.php:

$connection->queryExecute("SET sql_mode=''");

В файле /bitrix/php_interface/after_connect.php добавляем:

$DB->Query("SET sql_mode=''"); 

Читайте также: