项目场景:
在MySQL中创建函数报错
问题描述
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)`
create function aab()
returns int
begin
return 1+1;
end;
原因分析:
原因是开启了log-bin日志,创建函数时,函数中没有包含DETERMINISTIC, NOSQL和 READS SQL DATA声明,即没有涉及修改数据。
解决方案:
1. 查出log_bin_trust_function_creators的值, 输入以下命令
show variables like 'log_bin_trust_function_creators;
显示:
log_bin_trust_function_creators OFF
2. 修改该值为ON, 输入以下命令
set global log_bin_trust_function_creators=1;
修改值为on, 开启即可
此时无报错
3. 如果需要恢复,修改该值为OFF, 输入以下命令
set global log_bin_trust_function_creators=0;