/
/
Ошибки при импорте базы данных с триггерами

Ошибки при импорте базы данных с триггерами

Симптомы

В процессе импорта или восстановления базы данных с триггерами возникает следующая ошибка:

"Восстановление базы данных завершилось с ошибкой 1227. В доступе отказано. Возможно в восстанавливаемом дампе есть триггеры, которые требуют для восстановления прав суперпользователя".

Причины

Импорт базы данных в панели ispmanager выполняется без прав суперпользователя для защиты от возможных повреждений сервера БД.

Решение

Базы данных, содержащие триггеры, необходимо импортировать через консоль с правами суперпользователя (под пользователем "root"). Для этого выполните следующую команду:

mysql -h<ip-адрес> -P<порт> -uroot <имя_базы> -p < <файл_дампа>

Информацию о сервере баз данных (IP-адрес, порт, пароль) можно узнать в настройках конкретного сервера баз данных:

  • Для lite/pro/host: “Базы данных” -> “Серверы БД” -> выберите сервер БД -> "Изменить";
  • Для business: "Узлы кластера" -> выделите узел кластера -> меню “три точки” -> "Серверы БД" -> выберите сервер БД -> "Изменить".

Удаление триггеров из базы данных

Альтернативным решением является удаление триггеров из файла дампа перед импортом. Для этого сделайте резервную копию файла, перейдите в директорию файла дампа и выполните следующую команду:

sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i <файл_дампа>