从数据库导出带有触发器的表结构,导入新库后,触发器保留了原来的definer,如果新库不存在原用户,则会导致触发器执行失败.
查看触发器:
select * from information_schema.TRIGGERS 或 SHOW TRIGGERS
information_schema展示的数据实际为视图,无法对触发器定义进行变更
将触发器导出
mysqldump -uxxx -pxxxxxx --triggers --add-drop-trigger --no-create-info --no-data --no-create-db --skip-opt dbname > triggers.sql
打开triggers.sql,将definer替换为新的用户,再将sql导入
mysql -uxxx -pxxxxxx dbname < triggers.sql
查看触发器definer,已经更改成功,检查触发器功能是否正常。
select DEFINER from information_schema.TRIGGERS