您的位置:首页 > 数据库

SQL创建函数不成功的问题-log_bin_trust_function_creators参数研究

2015-12-10 15:18 417 查看
[Err] 1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation

这个问题是由于导入的sql脚本中存在DEFINER=`root`@`%` 、DEFINER=`sspdbexecuter`@`localhost`,由于没有相应的权限,所以导入报错

解决方法:

1)去掉sql脚本中的DEFINER=`root`@`%` 、DEFINER=`sspdbexecuter`@`localhost` (如果不去掉,即使给了grant all ...sspdbexecuter@'localhost'也一样报错)

2)去掉上面的内容后,便引发第2个问题“ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,or READS SQL DATA in its declaration”

 解决方法有两种,一种是在create语句中指定deterministic参数,一种是在mysql中设置 log_bin_trust_function_creators = 1;,目前暂时设置的SET GLOBAL log_bin_trust_function_creators = 1;(该设置在重启时会自动消失,除非写入配置文件)

主从复制中不会直接复制参数设置,因此三台均要做此设置,但是这个设置也是有安全风险的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: