MySQL ERROR 1418 的解决方法(自定义函数)

您所在的位置:网站首页 mysql命令行创建函数 MySQL ERROR 1418 的解决方法(自定义函数)

MySQL ERROR 1418 的解决方法(自定义函数)

2024-07-12 10:10| 来源: 网络整理| 查看: 265

目录 1.问题背景:在创建自定义函数时遇到错误: 2.解决方法:方法 1.登陆mysql数据库方法 2.在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个, 3.解决后如图:

1.问题背景: 在创建自定义函数时遇到错误:

创建一个现实时间的函数: create function show_time() returns varchar(30) return date_format(now(), ‘%Y年%m月%d日 %H时%i分%s秒’);

Error Code : 1418 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)

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

2.解决方法: 方法 1.登陆mysql数据库 set global log_bin_trust_function_creators = 1; 方法 2.在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个,

格式如下:

> CREATE DEFINER = CURRENT_USER PROCEDURE `new_pro`() > DETERMINISTIC > BEGIN > #Routine body goes here... > END; > CREATE DEFINER = CURRENT_USER FUNCTION `new_FUNC`() > RETURNS VARCHAR(20) > DETERMINISTIC > BEGIN > #Routine body goes here... > END; 3.解决后如图:

在这里插入图片描述 参考:https://blog.csdn.net/yongsheng0550/article/details/6250466



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3