С этой проблемой столкнулся и на CentOS 7 и на CentOS 9 при использовании окружения Битрикс после обновления до MySQL 8. Также был момент, когда мы имеем CentOS 9 с MySQL 8, затем обновляем Битрикс до последней версии и все, прилетает эта ошибка.
В решении ничего великого нет, просто несколько шагов. Подключаемся по SSH к своему серверу и выполняем следующие действия:
# mysql -u root -p
Вводим пароль и попадаем в консоль MySQL, далее:
> GRANT SESSION_VARIABLES_ADMIN ON *.* TO 'bitrix0' @ 'localhost';
> FLUSH PRIVILEGES;
> exit
Все, можно обновлять страницу веб-сайта.
Другой вариант: У вас обычный хостинг, где нет доступа к консоли MySQL.
Эта ошибка возникает, так как параметр innodb_strict_mode в MySQL 8 установлен в 0 по умолчанию, а для смены требует права администратора, которые на виртуальном хостинге не предоставляются.
Здесь просто нужно поправить файл /bitrix/php_interface/after_connect_d7.php. Точнее просто удалить строку:
$this->queryExecute("SET innodb_strict_mode=0");
Вот и все.
Количество просмотров: 24