mysql 创建函数问题(转)
2010-05-26 19:37
今天在整理数据时,又碰到MySQL函数不能创建的问题,以前也遇到过多次,解决是解决了,但是解决办法总是记不住,也没有很好地写下来,以至于每 次都要再次Google,耗时耗力,这次终于受不了了,还是选择写出来: 出错信息大致类似:
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)
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) 建立不了函数,是未开启功能:
以下是另外一种解决方法 分析: 根据系统提示,导致该错误的原因可能是一个安全设置方面的配置,查手册log_bin_trust_function_creators参数缺省0,是不 允许function的同步的 。 一般我们在配置repliaction的时候,都忘记关注这个参数,这样在master更新funtion后,slave就会报告错误,然后slave stoped。 处理过程: 登陆mysql数据库 > set global log_bin_trust_function_creators = 1; > start slave; 跟踪mysql的启动日志,slave正常运行,问题解决。 持续跟踪,经过一个晚上,bin-relay-log的数据全部同步完毕。 直接在my.cnf里面添加 log_bin_trust_function_creators = 1 这样以后重启了就自动开启了。 |