在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况。
出错信息大致类似:
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)
MySQL函数不能创建,是未开启功能:
mysql> show variables like '%func%'+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF |
+---------------------------------+-------+
1 row in set (0.00 sec)
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>
mysql开启bin-log后,调用存储过程或者函数以及触发器是就会出现1418错误的原因造成mysql调用存储函数没有结果。根据查询相关公开信息显示,修改globallog,bin,trust,function,creators就可以了。解决方法如下:1. mysql>set global log_bin_trust_function_creators = 1
2. 系统启动时 --log-bin-trust-function-creators=1
3. 在my.ini(linux下为my.conf)文件中 [mysqld] 标记后加一行内容为 log-bin-trust-function-creators=1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)