解决mysql报错This function has none of DETERMINISTIC问题


本文摘自PHP中文网,作者藏色散人,侵删。

本篇文章给大家介绍一下mysql 报错This function has none of DETERMINISTIC解决方案。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

本文向朋友们介绍开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法,

创建存储过程时

出错信息:

1

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)

原因:

这是我们开启了bin-log, 我们就必须指定我们的函数是否是

1

2

3

4

5

1 DETERMINISTIC 不确定的

2 NO SQL 没有SQl语句,当然也不会修改数据

3 READS SQL DATA 只是读取数据,当然也不会修改数据

4 MODIFIES SQL DATA 要修改数据

5 CONTAINS SQL 包含了SQL语句

其中在function里面,只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。如果我们开启了 bin-log, 我们就必须为我们的function指定一个参数。

解决方法:

1

2

3

4

5

6

7

8

9

10

11

12

13

SQL code

mysql> show variables like 'log_bin_trust_function_creators';

+---------------------------------+-------+

| Variable_name          | Value |

+---------------------------------+-------+

| log_bin_trust_function_creators | OFF  |

+---------------------------------+-------+

mysql> set global log_bin_trust_function_creators=1;

mysql> show variables like 'log_bin_trust_function_creators';

+---------------------------------+-------+

| Variable_name          | Value |

+---------------------------------+-------+

| log_bin_trust_function_creators | ON  |

这样添加了参数以后,如果mysqld重启,那个参数又会消失,因此记得在my.cnf配置文件中添加:

1

log_bin_trust_function_creators=1

推荐:《mysql视频教程》

以上就是解决mysql报错This function has none of DETERMINISTIC问题的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

mysql怎么远程连接

如何解决mysql限制连接报1130的问题

docker安装mysql8的方法步骤

深入理解mysql的b+tree索引原理

如何批量修改mysql表字符集

游标的作用及属性介绍

计算机二级mysql考什么内容?

如何通过ssh连接mysql数据库?

mysql实现同时查询更新同一张表的实例分析

mysql安全策略分享

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...