MySQL新建函数或过程 出现错误1418 的原因分析及解决方法

Date: 2019年2月28日 18:05:19

具体报错:

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA in its declaration and binary logging is enabled(you *might* want to use the less safe log_bin_trust_function_creators variable)

报错原因:

  https://www.jb51.net/article/97373.htm(搬运一下)

解决办法:

  上面链接也提到了解决办法,下面是个人感觉较合适的解决办法

1.如果是本人的开发库等,有权去做处理数据库配置的话,建议如下处理

  在MySQL配置文件my.ini或my.cnf中的[mysqld]段上加log-bin-trust-function-creators=1

  附:my.ini的文件怎么查找:https://jingyan.baidu.com/article/7e4409531f75292fc0e2efe7.html

2.创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个

  例如:

CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`()
  DETERMINISTIC
BEGIN
 #Routine body goes here...
END;

  

 

posted @ 2019-02-28 18:06  不会跳舞的啤啤熊  阅读(472)  评论(0编辑  收藏  举报