1、本地解决办法:在mysql中执行以下命令
SET GLOBAL log_bin_trust_function_creators=TRUE;
2、也可以通过修改配置文件的方式解决:
在my.ini(linux下为my.conf)文件中 [mysqld] 标记后加一行内容为(修改后需重启MySQL服务):
log-bin-trust-function-creators=1
原因解释来源于网络,出处作者不详:
这是我们开启了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指定一个参数。