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

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

Симптомы

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

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

Причины

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

Решение

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

mysql -h IP-АДРЕС -P ПОРТ -uroot ИМЯ_БАЗЫ_ДАННЫХ -p < ПУТЬ_ДО_ДАМПА/ИМЯ_ФАЙЛА.sql

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

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

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

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

sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i ПУТЬ_ДО_ДАМПА/ИМЯ_ФАЙЛА.sql