首页 » MySQL » Mysql:开启了log-bin的MySQL Server中创建FUNCTION

Mysql:开启了log-bin的MySQL Server中创建FUNCTION

原文 http://blog.csdn.net/hanchao5272/article/details/79051385

2018-01-14 02:00:53阅读(163)

1.错误信息

在开启了bin-log模式的MySQL服务中,创建FUNCTION失败。

Error Code: 1418. 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)
2.原因分析

在主从复制的两台MySQL服务器中开启了二进制日志选项log-bin,slave会从master复制数据,而一些操作,比如function所得的结果在master和slave上可能不同,所以存在潜在的安全隐患。因此,在默认情况下Mysql会阻止function的创建。

3.解决问题

这里提供两种方式:

3.1. mysql> set global log_bin_trust_function_creators=1;

在mysql服务中执行set global log_bin_trust_function_creators=1;
这种方式只是在当前Mysql运行期间有效,Mysql服务重启失效。

3.2. > vim /etc/my.cnf

在my.cnf(或my.ini)中添加配置项log-bin-trust-function-creators

> service mysqld stop
> vim /etc/my.cnf
    [mysqld]
    log-bin-trust-function-creators = 1
> Service mysqld start

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹