Обновление MariaDB 5.5 → 10.1 на CentOS для BitrixVM и 1С-Битрикс
Зачем поднимать MariaDB именно до 10.1
В административном разделе «1С-Битрикс» долго висело предупреждение о том, что продукты компании официально ориентированы на MySQL/MariaDB не ниже 10.0.5, а многие площадки на виртуальных машинах BitrixVM ещё работали на ветке 5.5. Без апгрейда СУБД часть обновлений платформы и проверок окружения остаются заблокированными.
Прыжок с «последней 5.5 сразу на самую новую MariaDB» на продакшене рискован: между мажорными ветками меняются оптимизатор, поведение дат и совместимость с клиентским кодом. Поэтому в практике администрирования BitrixVM разумная ступень — MariaDB 10.1: это уже актуальное ядро для требований продукта, но без резких сюрпризов более свежих мажорных релизов. Перед изменениями прогоните полную копию окружения и подготовьте сценарий отката.
Минимальный чеклист безопасности
- Снять логический бэкап каждой важной базы и убедиться, что дамп целостный по размеру и заголовку.
- Дополнительно скопировать каталог данных
/var/lib/mysql— страховка, если понадобится быстрый файловый откат без полного прогонаmysqldump. - Зафиксировать исходную версию клиентской утилиты или запросом
SELECT VERSION().
Резерв и остановка службы
Ниже — единый сценарий оболочки: дамп конкретной базы (имя_базы замените своим значением), просмотр списков баз, копия деревьев данных и останов mariadb перед сменой RPM.
mysqldump -u root -p --single-transaction --routines имя_базы > /root/имя_базы.sql
mysql -u root -p -e "SHOW DATABASES;"
cp -a /var/lib/mysql /var/lib/mysql_backup_$(date +%F)
systemctl stop mariadbРепозиторий и пакеты MariaDB 10.1 (CentOS 7)
Создайте файл /etc/yum.repos.d/MariaDB.repo. Если указанный baseurl перестанет отвечать, сверьтесь с актуальными зеркалами на сайте MariaDB и замените путь ветки 10.1/centos7-amd64.
[mariadb]
name = MariaDB 10.1
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1Далее установка и пост-апгрейд служебных таблиц (часть работы может продублироваться при первом старте службы — явный прогон перед нагрузкой всё же полезен):
yum clean all
yum install MariaDB-server MariaDB-client
systemctl start mariadb
mysql_upgrade -u root -pСайт Битрикс и sql_mode
На MariaDB 10.x строчный SQL mode по умолчанию отличается от привычного для 5.5, из‑за чего ядро сообщает о «непустом sql_mode». Проще всего задать пустое значение для сессии из PHP-хуков подключения.
// /bitrix/php_interface/after_connect_d7.php (D7)
$connection->queryExecute("SET SESSION sql_mode = ''");
// /bitrix/php_interface/after_connect.php (legacy)
$DB->Query("SET SESSION sql_mode = ''");После правок перезапустите php-fpm или веб-сервер, чтобы воркеры подхватили файлы из php_interface.
Итог
Держите запасную копию виртуальной машины BitrixVM и отдельный стенд: откат снапшотом восстанавливает сервис быстрее, чем ручное восстановление повреждённых файлов InnoDB. Официальные заметки MariaDB по цепочке 5.5 → 10.0 → 10.1 пригодятся, если понадобится свериться с изменениями плагинов и переменных по умолчанию.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии