今天做数据库合并的时候出现了这么一个问题,Log如下:
Err] [Dtf] 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)
[Err] [Dtf] Finished - Unsuccessfully
大概意思就是在Create Function的时候出了问题。首先我们登录MySQL查看一下MySQL的系统变量;
mysql>show VARIABLES like '%func%'; 关于show VARIABLES的用法参见:https://dev.mysql.com/doc/refman/5.0/en/show-variables.html
mysql> show variables like '%func%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF |
+---------------------------------+-------+
1 row in set (0.00 sec)
解决方案很简单:
1.root登录MySQL,以下命令必须具有root权限。
2.执行mysql>SET GLOBAL log_bin_trust_function_creators = 1;
然后我们在再来查看VARIABLES
mysql> set GLOBAL log_bin_trust_function_creators=1;
Query OK, 0 rows affected (0.00 sec)
mysql> show VARIABLES like '%func%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
1 row in set (0.00 sec)mysql>
最后合并数据库,成功。
refer:http://www.linuxidc.com/Linux/2010-10/29338.htm
http://database.51cto.com/art/201010/229918.htm