当前位置: 首页 > 面试题库 >

无法在5.1.32上创建具有TRIGGER特权的MySQL触发器

万俟靖
2023-03-14
问题内容

我和其他开发人员在共享的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授予了我mySchema。*的TRIGGER特权,当我执行SHOWGRANTS时可以看到它;但是我仍然收到有关需要“ SUPER”特权的错误。我们不想让所有开发人员都拥有超级。

有什么建议?


问题答案:

这是此错误的报告。一种选择是在–log-bin-trust-
function-creators选项打开的情况下运行,这将允许您创建没有SUPER特权的触发器。
本页说明启用该选项的含义。基本上,这与MySQL是否认为您的触发器具有确定性(即复制安全)有关。您的DBA在该模式下运行时可能会适应,也可能会不适应。这不是理想的方法,但是比给出超级方法要好…

更新:实际上,第二个链接上的文档听起来似乎可以通过使用基于行的复制甚至混合模式复制来解决。至少这样可以确保复制安全。我不知道您是否仍然需要拥有SUPER,但值得尝试。



 类似资料:
  • 我试图在插入后创建一个触发器,它将更新另一个表。 这是我尝试的代码: 但我会收到以下错误消息: 1064-您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解使用“@qte AS integer”附近的正确语法;声明@code为整数;从INSERTED中选择@QTE=qteInv;%s“位于第4行

  • 主要内容:基本语法,创建 BEFORE 类型触发器,创建 AFTER 类型触发器触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <

  • 本文向大家介绍MySQL如何创建触发器,包括了MySQL如何创建触发器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了MySQL创建触发器的具体代码,供大家参考,具体内容如下 先来个实例: 实例解析:   先创建触发器中待存储的表t_attendance   DELIMITER $   意思是告诉mysql下文执行语句以“$”结束,如果没有这句,下面语句会出错,mysql无法判断哪句

  • 本文向大家介绍jquery中trigger()无法触发hover事件的解决方法,包括了jquery中trigger()无法触发hover事件的解决方法的使用技巧和注意事项,需要的朋友参考一下 今天做一个项目,遇到了一个问题,是以前没有遇到过的,就此记上一笔。 1、trigger方法解释 官方是这么解释的: 用法: .trigger( eventType [, extraParameters] )

  • 本文向大家介绍Oracle触发器trigger详解,包括了Oracle触发器trigger详解的使用技巧和注意事项,需要的朋友参考一下 触发器相关概念及语法 概述 本篇博文中主要探讨以下内容: 什么是触发器 触发器的应用场景 触发器的语法 触发器的类型 案例 数据: 触发器的概念和第一个触发器 数据库触发器是一个与表相关联的,存储的PL/SQL 语句。 每当一个特定的数据操作语句(insert u

  • 问题内容: 我正在用Djnago和MySql构建应用程序。我想使用docker来部署我的应用程序。我已经准备了一个,和 docker-compose.yml requirements.txt Docker文件 settings.py 我一直在尝试运行命令从docker文件构建映像,但出现此错误。看起来MySql连接器有问题。我尝试搜索解决方案,但找不到任何解决方法。如果从中删除 mysql_db