在mysql中创建函数不成功(确定能创建函数)

在mysql中创建函数不成功(确定能创建函数),第1张

在使用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


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8670291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存