欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql 报错This function has none of DETERMINISTIC解决方案

程序员文章站 2023-12-15 17:59:46
本文章向朋友们介绍开启bin-log日志mysql报错:this function has none of deterministic, no sql解决办法, 创建存储...

本文章向朋友们介绍开启bin-log日志mysql报错:this function has none of deterministic, no sql解决办法,

创建存储过程时

出错信息:

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 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指定一个参数。

解决方法:

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配置文件中添加:

log_bin_trust_function_creators=1

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

上一篇:

下一篇: