Ошибка и её причины
При добавлении сайта через BitrixVM вы можете столкнуться с ошибкой:
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
Эта ошибка возникает, когда пользователь базы данных пытается изменить системные переменные MySQL (например, innodb_strict_mode), но не имеет необходимых привилегий.
Решение 1: Предоставление необходимых прав
- Подключитесь к серверу по SSH под пользователем root или под пользователем имеющего доступ к утилите sudo
- Войдите в консоль MySQL:
илиmysqlsudo mysql - Выполните команду для предоставления прав (замените {user} на имя вашего пользователя MySQL):
GRANT SESSION_VARIABLES_ADMIN ON *.* TO '{user}'@'localhost'; FLUSH PRIVILEGES;
Как найти имя пользователя MySQL?
Имя пользователя можно найти в файле конфигурации вашего сайта, например:
- В файле
/bitrix/.settings.phpв ключе 'connections' -> 'login' - Или в файле
/bitrix/php_interface/dbconn.phpв переменной$DBLogin
Решение 2: Отключение изменения innodb_strict_mode
Если вы не можете получить права SESSION_VARIABLES_ADMIN, можно отключить попытку изменения параметра:
- Откройте файл
/bitrix/php_interface/after_connect_d7.php - Найдите строку:
$this->queryExecute("SET innodb_strict_mode=0"); - Закомментируйте её:
// $this->queryExecute("SET innodb_strict_mode=0");
Альтернативное решение
Если ошибка сохраняется после этих действий, обратитесь в техническую поддержку вашего хостинга с запросом:
- Предоставить пользователю MySQL привилегии SESSION_VARIABLES_ADMIN
- Или изменить параметр innodb_strict_mode глобально на сервере