Ошибка (1227) Access denied после переноса Bitrix

10.09.2024
74
1 минута

После переноса сайта на битриксе на другой хостинг, иногда возникает ошибка Mysql query error: (1227).

[Bitrix\Main\DB\SqlQueryException]
Mysql query error: (1227) Access denied; you need (at least one of) the SYSTEM_VARIABLES_ADMIN or SESSION_VARIABLES_ADMIN privilege(s) for this operation (400)
SET innodb_strict_mode=0
/home/d/www/public_html/bitrix/modules/main/lib/db/mysqliconnection.php:149

Причина ошибки

Такая ошибка может возникнуть при переходе с более старых версий MySQL на новые. В MySQL 8.0 и более поздних версиях изменилась система привилегий, и теперь требуется отдельное право SYSTEM_VARIABLES_ADMIN или SESSION_VARIABLES_ADMIN для изменения системных переменных, таких как innodb_strict_mode. В более старых версиях пользователи могли менять этот параметр без дополнительных прав. В новых версиях MySQL по умолчанию innodb_strict_mode включен, а в старых он мог быть выключен.

Если в after_connect_d7.php прописано SET innodb_strict_mode=0, но нет нужных прав, появится ошибка 1227.  В последних версиях MySQL разработчики усилили контроль над изменением глобальных и сессионных переменных. Если раньше можно было устанавливать SET innodb_strict_mode=0 без ограничений, то теперь это доступно только пользователям с расширенными привилегиями.

Решение проблемы

  1. Открываем файл /bitrix/php_interface/after_connect_d7.php.

  2. Находим строку:

    $this->queryExecute("SET innodb_strict_mode=0");
  3. Комментируем её, добавив // в начале строки:

    // $this->queryExecute("SET innodb_strict_mode=0");
  4. Если ошибка сохраняется, необходимо обратиться в техническую поддержку хостинга и уточнить возможность изменения параметра innodb_strict_mode.

Альтернативные методы

  • Попробовать изменить настройки базы данных через файл конфигурации MySQL (my.cnf), если у вас есть доступ к серверу.

  • Проверить, не влияет ли параметр innodb_strict_mode на работоспособность сайта, и если да, адаптировать код Битрикс без его отключения.

После внесения изменений рекомендуется очистить кэш битрикса и протестировать работу сайта.

Интересные статьи
Ваш запрос отправлен
Наш менеджер уже увидел ваше письмо, он наберет Вас в ближайшее время.