首页 > 数据库 > MySQL > 正文

MySQL创建函数报“ERROR 1418 ”错误,不能创建函数

2024-07-24 12:36:55
字体:
来源:转载
供稿:网友

MySQL创建函数报ERROR 1418错误,不能创建函数,根据官方提示是说,不能创建函数可能是一个安全设置方面的配置或功能未开启原因,下面我们一起来看.

错误: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函数不能创建,是未开启功能.

根据系统提示,导致该错误的原因可能是一个安全设置方面的配置,查手册log_bin_trust_function_creators参数缺省0,是不允许function的同步的,一般我们在配置repliaction的时候,都忘记关注这个参数,这样在master更新funtion后,slave就会报告错误,然后slave stoped.

处理过程:解决方法,MySQL函数不能创建,是未开启功能,代码如下:

  1. mysql> show variables like ‘%func%’; 
  2. +———————————+——-+ 
  3. | Variable_name | Value | 
  4. +———————————+——-+ 
  5. | log_bin_trust_function_creators | OFF | 
  6. +———————————+——-+ 
  7. 1 row in set (0.00 sec) 
  8. mysql> set global log_bin_trust_function_creators=1; 
  9. Query OK, 0 rows affected (0.00 sec)   //Vevb.com
  10. mysql> show variables like ‘%func%’; 
  11. +———————————+——-+ 
  12. | Variable_name                            | Value   | 
  13. +———————————+——-+ 
  14. | log_bin_trust_function_creators  | ON | 
  15. +———————————+——-+ 
  16. 1 row in set (0.00 sec)mysql> 

如果上方法不能成功解决mysql中的ERROR 1418错误,那还得请你使用下面方法试试.

第一步:mysql> SET GLOBAL log_bin_trust_function_creators = 1;

第二步:系统启动时 –log-bin-trust-function-creators=1

第三步:在my.ini(Linux下为my.conf)文件中 [mysqld] 标记后加一行内容为 log-bin-trust-function-creators=1

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表