当前位置: 首页 > 编程笔记 >

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

支阳波
2023-03-14
本文向大家介绍mysql 报错This function has none of DETERMINISTIC解决方案,包括了mysql 报错This function has none of DETERMINISTIC解决方案的使用技巧和注意事项,需要的朋友参考一下

本文章向朋友们介绍开启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

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

 类似资料:
  • 使用docker-compose 部署 MySQL 报错 docker-compose.yml mysql配置部分 my.cnf文件

  • 本文向大家介绍解决springboot 连接 mysql 时报错 using password: NO的方案,包括了解决springboot 连接 mysql 时报错 using password: NO的方案的使用技巧和注意事项,需要的朋友参考一下 最近使用 springboot 配置 mysql 时出现了一个错误 Access denied for user ''@'localhost' (u

  • 本文向大家介绍innerHTML在IE中报错解决方案,包括了innerHTML在IE中报错解决方案的使用技巧和注意事项,需要的朋友参考一下 问题:开发过程中,用到循环往table里面插入tr标签,然后tr里又循环插入td,在其它浏览器都没问题,但是在IE9及以下版本中都报错: google上得到答案:由于我之前不知道错误的原因,在百度找不到解决方法,后来用谷歌搜到了,外国有人也遇到过这个问题,并指

  • 本文向大家介绍gem install redis报错的解决方案,包括了gem install redis报错的解决方案的使用技巧和注意事项,需要的朋友参考一下 在使用ruby脚本安装Redis集群时,需要先安装Ruby语言环境和redis插件,但是安装redis插件时遇到以下报错,下面记录一下解决过程。 因为执行Ruby脚本需要Ruby语言环境,所以首先安装Ruby语言环境和Ruby的包管理器Ge

  • 本文向大家介绍Android Studio 报错“app:processDebugResources"解决方法,包括了Android Studio 报错“app:processDebugResources"解决方法的使用技巧和注意事项,需要的朋友参考一下 Android Studio 报错“app:processDebugResources"解决方法 Android Studio项目Build的时

  • 本文向大家介绍node.js缺少mysql模块运行报错的解决方法,包括了node.js缺少mysql模块运行报错的解决方法的使用技巧和注意事项,需要的朋友参考一下 发现问题 在用node.js连接数据库,运行报错:cannot find module 'mysql; 然后 在管理员和用户下分别用npm安装数据库但是都是失败: 解决方法 按照错误日志应该是找不到文件夹,无法打开package.jso