当前位置:  开发笔记 > 后端 > 正文

无法使用5.1.32的TRIGGER权限创建MySQL触发器

如何解决《无法使用5.1.32的TRIGGER权限创建MySQL触发器》经验,为你挑选了1个好方法。

我的开发人员和我在共享的MySQL开发数据库上有自己的开发模式.我的任务要求我在我的模式中创建触发器,但到目前为止我还没有成功.

CREATE TRIGGER myTrigger AFTER DELETE on myTable
FOR EACH ROW BEGIN
    -- DO STUFF
END;

MySQL说:错误1419(HY000):您没有启用SUPER权限并且启用了二进制日志记录(您可能希望使用安全性较低的log_bin_trust_function_creators变量)

我检查了MySQL手册(http://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html):

TRIGGER权限使您可以创建和删除触发器.您必须拥有此表的权限才能为该表创建或删除触发器.MySQL 5.1.6中添加了此权限.(在MySQL 5.1.6之前,触发操作需要SUPER权限.)

我们正在运行"5.1.32-enterprise-gpl-advanced-log",因此TRIGGER权限应该足够; 但是,DBA授予我TRIGGER特权mySchema.*我可以在我做SHOW GRANTS时看到它;但是我仍然得到关于需要"SUPER"特权的这个错误.我们不想让所有的开发者都超赞.

有什么建议?



1> nathan..:

这是错误报告.一种选择是在打开--log-bin-trust-function-creators选项的情况下运行,这将允许您创建没有SUPER权限的触发器. 此页面解释了该选项的含义.基本上它与MySQL是否认为您的触发器是确定性的(即复制安全)有关.您的DBA可能会或可能不会在该模式下运行.这不是理想的,但比赠送SUPER更好......

更新:第二个链接的文档实际上听起来像你可以通过使用基于行的复制,甚至混合模式复制来解决这个问题.至少这将使复制安全.你是否仍然需要SUPER,我不知道,但它可能值得一试.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有