Yandex Metrika
sanches.free 20 просмотров

Обновление 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 дней гарантии