-1

可能重复:
mysql:我们不能在系统表上创建触发器吗?

我们正在使用MySQLver 5.1.59on rhel 6.1 (64 bit)。我们要监视数据库的删除,并为此尝试在mysql数据库的 db 表上创建触发器。我们trigger通过登录来创建root user. 编写的触发器如下:

分隔符 |

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 权限。任何人都可以帮助我们吗?

4

2 回答 2

0

我将大胆猜测并说您收到该错误消息的原因是无法在系统表上创建触发器。

哦,也许我可以添加“不分特权”

于 2012-11-17T07:49:39.243 回答
-1

总之:你做不到。

我也尝试过类似的东西

查看 mySql 提供的(全部)和(超级)权限

在尝试了所有类型的特权后

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

我试过最简单的触发器并得到同样的错误

Triggers can not be created on system tables

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

于 2012-11-17T11:07:30.390 回答