Ошибки при импорте базы данных с триггерами
Симптомы
В процессе импорта или восстановления базы данных с триггерами возникает следующая ошибка:
"Восстановление базы данных завершилось с ошибкой 1227. В доступе отказано. Возможно в восстанавливаемом дампе есть триггеры, которые требуют для восстановления прав суперпользователя".
Причины
Импорт базы данных в панели ispmanager выполняется без прав суперпользователя для защиты от возможных повреждений сервера БД.
Решение
Базы данных, содержащие триггеры, необходимо импортировать через консоль с правами суперпользователя (под пользователем "root"). Для этого выполните следующую команду:
mysql -h<ip-адрес> -P<порт> -uroot <имя_базы> -p < <файл_дампа>
Информацию о сервере баз данных (IP-адрес, порт, пароль) можно узнать в настройках конкретного сервера баз данных:
- Для lite/pro/host: “Базы данных” -> “Серверы БД” -> выберите сервер БД -> "Изменить";
- Для business: "Узлы кластера" -> выделите узел кластера -> меню “три точки” -> "Серверы БД" -> выберите сервер БД -> "Изменить".
Удаление триггеров из базы данных
Альтернативным решением является удаление триггеров из файла дампа перед импортом. Для этого сделайте резервную копию файла, перейдите в директорию файла дампа и выполните следующую команду:
sed 's/\sDEFINER=`[^`]*`@`[^`]*`//g' -i <файл_дампа>