给 mysql 系统表加上 trigger

默认情况下,mysql 是不能给系统表,例如 mysql.user 加上触发器的。会提示

ERROR 1465 (HY000): Triggers can not be created on system tables

但是还是可以有办法绕过这个限制。

在其他 db 里另外建一个结构名字一样的表,例如

create table test.user like mysql.user

然后在那个表上建好触发器。这样会在数据库目录中生成 “表名.TRG” 文件。把这个文件拷贝到 mysql 库的目录中,确认访问权限没问题后,重启一下 mysql ,触发器就可以生效了。

原文地址:https://www.cnblogs.com/shihao/p/2572660.html