A-A+

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

2017年10月24日 PHP技术文章 暂无评论 阅读 0 views 次

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)   //www.xiariboke.net  
  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

标签:

给我留言