MySQL创建函数报“ERROR 1418 ”错误,不能创建函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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函数不能创建,是未开启功能:
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中的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
以上是关于MySQL创建函数报“ERROR 1418 ”错误,不能创建函数的主要内容,如果未能解决你的问题,请参考以下文章
MySQL中ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA错误
MySQL This function has none of DETERMINISTIC, NO SQL...错误1418 的原因分析及解决方法
python操作剪贴板错误提示:pywintypes.error: (1418, 'GetClipboardData',线程没有打开的剪贴板)