Коротко
Разберём, что именно изменилось в требованиях
Что изменилось и почему это важно
При обновлении
Есть и вторая причина: сама MySQL 5.7 больше не получает исправлений безопасности от разработчика, а ветка 8.0 также завершила жизненный цикл. Долгосрочной версией стала MySQL 8.4 LTS — на неё и стоит ориентироваться.
| Версия MySQL | Статус | Для сайта на |
|---|---|---|
| 5.6, 5.7 | поддержка разработчиком закончилась | ниже требований, переходить срочно |
| 8.0 | жизненный цикл завершён | минимально допустимая, но лучше сразу 8.4 |
| 8.4 LTS | долгосрочная поддержка | рекомендуемая |
| MariaDB | отдельный продукт | требования к версии уточняйте в «Проверке системы» |
Как узнать свою версию MySQL
- В админке: «Настройки → Инструменты → Проверка системы» — в отчёте указана версия сервера базы данных.
- Там же при обновлении платформы появляется предупреждение о версии MySQL, если она ниже требуемой.
- В панели хостинга или по SSH командой
mysql --version(или запросомSELECT VERSION();).
Если сайт на виртуальном хостинге, версию MySQL обычно меняет хостинг — уточните в поддержке, можно ли перевести базу на 8.0 или 8.4 и как это сделать без простоя.
Что чаще всего ломается при переходе на MySQL 8
Ядро
| Изменение | Как проявляется | Что сделать |
|---|---|---|
Кодировка по умолчанию — utf8mb4 с сопоставлением utf8mb4_0900_ai_ci | Ошибки «Illegal mix of collations» в запросах, где сравниваются поля разных таблиц | Явно задать кодировку и сопоставление соединения и базы; привести таблицы к одному сопоставлению |
Новые зарезервированные слова: RANK, ROWS, GROUPS, WINDOW, LEAD, LAG и другие | Синтаксическая ошибка в своих SQL-запросах, если так названа таблица или колонка | Заключить имена в обратные кавычки или переименовать |
GROUP BY больше не сортирует результат | Списки в своих отчётах и выборках выводятся в другом порядке | Добавить явный ORDER BY |
Строгий режим SQL (ONLY_FULL_GROUP_BY и другие) | Ошибки в старых запросах с неполной группировкой | Исправить запросы; режим соединения задать в /bitrix/php_interface/after_connect_d7.php по рекомендациям «Проверки системы» |
| Удалён кеш запросов (query cache) | Сервер MySQL 8 не запускается со старым my.cnf с параметрами query_cache_* | Убрать параметры из конфигурации; для скорости — кеширование |
Новая авторизация caching_sha2_password; в 8.4 старый плагин mysql_native_password выключен по умолчанию | Старый PHP или внешние скрипты не могут подключиться к базе | Использовать PHP 7.4 и выше (лучше — PHP 8.3) или создать пользователя с подходящим способом авторизации |
| Прямой переход с 5.7 на 8.4 «на месте» не поддерживается | Обновление пакета на сервере завершается ошибкой | Переносить базу дампом на новый сервер с 8.4 или обновляться через 8.0 |
Если параллельно нужно обновлять PHP, сначала переведите сайт на поддерживаемую версию PHP — порядок описан в статье «Как перевести сайт на
Шаг 1. Аудит перед переходом
- Версия MySQL, объём базы, самые большие таблицы и кодировки таблиц.
- Свой код с прямыми SQL-запросами:
/local/,init.php, свои модули, отчёты, скрипты обменов. - Модули Маркетплейса, которые работают с базой напрямую.
- Конфигурация сервера MySQL (my.cnf) и параметры подключения сайта (
/bitrix/.settings.php,after_connect_d7.php). - Версия PHP: со старым PHP подключиться к MySQL 8.4 может не получиться.
Шаг 2. Резервная копия
Сделайте полную копию базы и файлов и проверьте, что её можно восстановить. Для базы — дамп средствами mysqldump. Без проверенной копии переход не начинайте.
Шаг 3. Отдельный сервер или экземпляр с MySQL 8.4
Самый безопасный способ — не обновлять MySQL «на месте», а поднять рядом новый экземпляр MySQL 8.4 (на том же или отдельном сервере) и перенести в него копию базы. Рабочий сайт в это время продолжает работать на старой базе.
- Настройте кодировку и сопоставление сервера так же, как у базы сайта.
- Перенесите значимые параметры из старого my.cnf, убрав удалённые (
query_cache_*и другие). - Подберите параметры InnoDB под объём базы — подробнее об этом на странице «Оптимизация MySQL».
Шаг 4. Перенос базы и тестовая копия сайта
- Снимите дамп рабочей базы и загрузите его в MySQL 8.4.
- Разверните тестовую копию сайта, подключённую к новой базе, закройте её от посетителей и поисковиков.
- Отключите на копии отправку писем клиентам, обмен с рабочей 1С и платежи в боевом режиме.
- Включите журналирование ошибок PHP и SQL.
Шаг 5. Тестирование
- «Проверка системы» — полный тест, включая раздел базы данных.
- Публичная часть: каталог, умный фильтр, поиск, карточки, корзина, оформление заказа, личный кабинет.
- Админка: редактирование товаров и элементов, импорт, отчёты, свои страницы.
- Обмен с 1С, агенты и задачи cron, интеграции с CRM и маркетплейсами.
- Производительность: время ответа ключевых страниц и медленные запросы в журнале MySQL. Обычно после перехода показатели не хуже, чем на старой версии.
Найденные ошибки исправляйте в коде на копии и повторяйте сценарии, пока журнал не станет чистым.
Шаг 6. Переключение без простоя
- Выберите время с минимальной нагрузкой, предупредите сотрудников не запускать обмен с 1С и импорты.
- Включите на сайте режим обслуживания на несколько минут или остановите приём изменений — чтобы данные в старой базе не менялись во время финального переноса.
- Снимите финальный дамп и загрузите его в MySQL 8.4.
- Переключите подключение сайта на новую базу в
/bitrix/.settings.phpиdbconn.php. - Очистите кеш
«1С-Битрикс», снимите режим обслуживания и проверьте ключевые сценарии.
Для больших баз окно переключения сокращают репликацией: новая база заранее получает изменения со старой, и в момент переключения переносить почти ничего не нужно.
Шаг 7. После перехода и план отката
- Первые 24–72 часа следите за журналами ошибок, заказами, обменом с 1С и агентами.
- Старый сервер MySQL не удаляйте неделю: при серьёзной проблеме можно вернуть подключение на него. Учтите, что данные, появившиеся после переключения, нужно будет перенести обратно вручную.
- Настройте регулярное резервное копирование новой базы и мониторинг сервера.
Чек-лист перехода на MySQL 8.4
- Узнать версию MySQL, объём базы и кодировки таблиц.
- Проверить версию PHP: для MySQL 8.4 нужен PHP 7.4 и выше, лучше — 8.3.
- Найти свой код с прямыми SQL-запросами и модули, работающие с базой.
- Сделать полную резервную копию и проверить восстановление.
- Поднять отдельный экземпляр MySQL 8.4 с правильной кодировкой и конфигурацией.
- Перенести копию базы и развернуть тестовую копию сайта.
- Пройти сценарии сайта, админки, обменов и интеграций; исправить ошибки.
- Переключить рабочий сайт в спокойное время с финальным переносом данных.
- Наблюдать 24–72 часа и держать старую базу для отката неделю.
Сколько стоит переход
Стоимость зависит от объёма базы, количества своего кода с SQL-запросами и того, где размещён сайт. На виртуальном хостинге часть работ выполняет хостинг; на VPS и выделенном сервере переход делаем полностью сами. Точную смету даём после аудита. Переход можно выполнить и в рамках абонентской поддержки:
Абонентская поддержка сайта на
- Поддержка «Старт»20 000 ₽ в месяц5 часов в месяцПодключить
- Поддержка «Стандарт»40 000 ₽ в месяц10 часов в месяцПодключить
- Поддержка «Бизнес»80 000 ₽ в месяц20 часов в месяцПодключить
Час работ — 4 000 ₽, при оплате за 12 месяцев — 3 500 ₽. В часы входят обновления PHP, ядра и модулей, исправления и доработки. Подробнее о тарифах
Подробнее — на страницах «Администрирование серверов» и «Настройка сервера под
Как перевести сайт на 1С-Битрикс на MySQL 8.4
- Проведите аудитВерсия MySQL и PHP, объём базы, кодировки таблиц, свой код с прямыми SQL-запросами и модули, работающие с базой.
- Сделайте резервную копиюПолная копия базы и файлов с проверкой восстановления.
- Поднимите MySQL 8.4 рядомОтдельный экземпляр с той же кодировкой и очищенной от устаревших параметров конфигурацией.
- Разверните тестовую копиюПеренесите дамп базы, подключите копию сайта, отключите письма, обмен с 1С и боевые платежи.
- ПротестируйтеПроверка системы, публичная часть, админка, обмены, агенты и медленные запросы; исправьте найденные ошибки.
- Переключите рабочий сайтВ спокойное время: режим обслуживания, финальный дамп, новое подключение в .settings.php, очистка кеша.
- Наблюдайте и держите откат24–72 часа следите за журналами и заказами, старую базу храните неделю.
Источники
Подготовлено командой WRP — Золотого партнёра












