无法在mysql系统表上创建触发器

时间:2012-11-17 07:39:10

标签: mysql triggers system

  

可能重复:
  mysql: Cant we create triggers on system tables?

我们在MySQL上使用5.1.59 ver rhel 6.1 (64 bit)。我们希望监视数据库的删除以及试图在mysql数据库的db表上创建触发器的数据库。我们通过以trigger登录来创建root user。写入的触发器如下:

DELIMITER |

CREATE
    /*[DEFINER = { user | CURRENT_USER }]*/
    TRIGGER `mysql`.`test` BEFORE DELETE
    ON `mysql`.`db`
    FOR EACH ROW BEGIN
    INSERT INTO cescnet.db_monitor (DB_name,user_name,dateandtime,operation_type) VALUES (mysql.db.Db,CURRENT_USER(),NOW(),'Delete');
    END;|

但我们收到了错误:

  

错误代码:1465

     

无法在系统表上创建触发器

由于我们以root用户身份工作,因此我们认为我们拥有系统的所有权限。来自任何主机(包括本地主机)的root用户的全局特权包括SUPER权限。有人可以帮助我们吗?

1 个答案:

答案 0 :(得分:-1)

简而言之:你做不到。

我也尝试过像

这样的事情

See (All) and (Super) Privileges Provided by mySql

尝试所有类型的权限后,如

grant super on *.* to root@localhost
grant all on *.* to root@localhost

我尝试过最简单的触发器并获得相同的错误

Triggers can not be created on system tables

如果您发现可以在系统表上创建触发器的任何地方,那就错了