Ошибка mysql 1227

SQLSTATE[42000]: Syntax error or access violation: 1227 Access denied; you need (at least one of) the SUPER or SYSTEM_VARIABLES_ADMIN privilege(s) for this operation.

Причин тут может быть несколько.

  1. Самая простая. Не верно указаны данные доступа к базе данных. Проверьте логин, пароль, имя базы данных. Права пользователя к базе данных.
  2. Встречается при импорте дампа. Когда в дампе базы данных указано имя пользователя (DEFINER) но фактически этого пользователя уже нет или нет доступа. Необходимо удалить DEFINER из дампа базы данных:
sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i yourdumpfile.sql

И заново делаем импорт.

3. Встречается у bitrix. Для исправления, необходимо из файла bitrix/php_interface/after_connect_d7.php удалить строку (и возможно другие строки, которые задают настройку mysql после подключения):

$this->queryExecute("SET innodb_strict_mode=0");

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.