服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - 开启bin-log日志mysql报错的解决方法

开启bin-log日志mysql报错的解决方法

2020-01-20 14:34MYSQL教程网 Mysql

开启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

延伸 · 阅读

精彩推荐
  • MysqlMySQL数据迁移使用MySQLdump命令

    MySQL数据迁移使用MySQLdump命令

    今天小编就为大家分享一篇关于MySQL数据迁移使用MySQLdump命令,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编...

    Tangzongyu1233782019-06-19
  • MysqlPHP MYSQL注入攻击需要预防7个要点

    PHP MYSQL注入攻击需要预防7个要点

    这篇文章主要介绍了PHP MYSQL开发中,对于注入攻击需要预防的7个要点,大家需要注意了 ...

    MYSQL教程网4342020-01-16
  • MysqlMySQL 的CASE WHEN 语句使用说明

    MySQL 的CASE WHEN 语句使用说明

    本文介绍下,在mysql数据库中,有关case when语句的用法,介绍了case when语句的基础知识,并提供了相关实例,供大家学习参考,有需要的朋友不要错过 ...

    MYSQL教程网2862019-11-26
  • Mysql怎么重置mysql的自增列AUTO_INCREMENT初时值

    怎么重置mysql的自增列AUTO_INCREMENT初时值

    怎么重置mysql的自增列想必有很多的朋友都不会吧,下面与大家分享下常用的几种方法,不懂的朋友可以了解下哈,希望对大家有所帮助 ...

    MYSQL教程网2972019-12-25
  • MysqlMySQL自增列插入0值的解决方案

    MySQL自增列插入0值的解决方案

    基于业务逻辑的要求,需要在MySQL的自增列插入0值,针对此需求,本文给予详细的解决方案,感兴趣的你可以参考下哈,希望可以帮助到你 ...

    MYSQL教程网2332019-12-20
  • MysqlMySQL DeadLock故障排查全过程记录

    MySQL DeadLock故障排查全过程记录

    这篇文章主要给大家介绍了关于MySQL DeadLock故障排查的全过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    携程DBA4522019-06-11
  • MysqlMySQL中批量删除指定前缀表的sql语句

    MySQL中批量删除指定前缀表的sql语句

    代码如下: Select CONCAT( drop table , table_name, ; ) FROM information_schema.tables Where table_name LIKE dede_%; dede为要删除的表前缀,执行此SQL语句后会生成一串SQL语句,必须...

    MYSQL教程网4392020-01-03
  • MysqlMySQL数据库服务器端核心参数详解和推荐配置

    MySQL数据库服务器端核心参数详解和推荐配置

    MySQL手册上也有服务器端参数的解释,以及参数值的相关说明信息,现针对我们大家重点需要注意、需要修改或影响性能 的服务器端参数,作其用处的解释...

    MYSQL教程网2652019-11-27