手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >开启bin-log日志mysql报错的解决方法
开启bin-log日志mysql报错的解决方法
摘要:创建存储过程时出错信息:复制代码代码如下:ERROR1418(HY000):ThisfunctionhasnoneofDETERMINIST...

创建存储过程时

出错信息:

复制代码 代码如下:

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

【开启bin-log日志mysql报错的解决方法】相关文章:

mysql数据库ROOT账号权限丢失问题解决方法

在ubuntu中重置mysql服务器root密码的方法

mysql连接过多和死掉以及拒绝服务的解决方法

Mysql(MyISAM)的读写互斥锁问题的解决方法

mysql服务1067错误多种解决方案分享

linux忘记mysql密码处理方法

mysql启动提示mysql.host 不存在,启动失败的解决方法

CentOS下php使用127.0.0.1不能连接mysql的解决方法

php后台经常提示无法连接mysql 刷新后又可以访问的解决方法

linux下mysql链接被防火墙阻止的解决方法

精品推荐
分类导航