MySQL创建自定义函数时 Error Code: 1418 的解决方法
来源:互联网 发布:安卓json解析框架 编辑:程序博客网 时间:2024/05/07 00:43
今天在MySQL中创建函数时,报了以下错误:
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)
于是查看 MySQL手册,错误原因如下:
由于基于语句的复制,在从库重放日志里的事件时,使用函数这种非确定性事件可能导致主从数据不一致,因此,开启二进制日志功能后,MySQL会对函数的创建做出限制。
解决方法:
首先要知道,在 MySQL中,函数的类别有:
1.CONTAINS SQL 包含了SQL语句(函数默认为这种类型)
2.READS SQL DATA 只是读取数据,不修改数据
3.NO SQL 没有SQL语句(当然也不会修改数据)
4.DETERMINISTIC 确定的
5.MODIFIES SQL DATA 将修改数据
因此如果我们想创建函数,必须指明函数的类别为 READS SQL DATA 或 NO SQL 或 DETERMINISTIC。
...CREATE READS SQL DATA FUNCTION ......
即告诉 MySQL,我这个函数要么是确定性的,要么根本就不会写数据,因此不会对复制产生影响。
还有一个方法,即将全局参数 log_bin_trust_function_creators 设为 on,代表受信任的函数创建者,也就是使MySQL不对函数做出限制。注意,如果是在运行过程中修改该值,重启服务器后,修改就会丢失,因此要手动修改配置文件。
- MySQL创建自定义函数时 Error Code: 1418 的解决方法
- MySQL Workbench “Error Code: 1175” 的解决方法
- MySQL Workbench “Error Code: 1175” 的解决方法
- MySQL Workbench “Error Code: 1175” 的解决方法
- MySQL Workbench “Error Code: 1175” 的解决方法
- MySQL Workbench “Error Code: 1175” 的解决方法
- mysql 创建函数 error Code: 1227. Access denied;
- 【Mysql】MySQL Workbench “Error Code: 1175” 的解决方法
- MySQL Workbench “Error Code: 1175” 的解决方法 (正确记录)
- MySQL函数不能创建的解决方法
- MySQL函数不能创建的解决方法
- MySQL函数不能创建的解决方法
- mysql创建自定义函数
- mysql创建自定义函数
- MySQL创建自定义函数
- MySQL创建函数报“ERROR 1418 ”错误,不能创建函数
- MySQL Workbench 不能删除数据等问题(“Error Code: 1175”) 的解决方法
- MySQL Workbench 不能删除数据等问题(“Error Code: 1175”) 的解决方法
- RBAC权限管理
- C语言计算佣金
- Struts2的工作原理
- 『论文阅读』Image-to-Image Translation with Conditional Adversarial Networks
- yvklqxnbtubjusz
- MySQL创建自定义函数时 Error Code: 1418 的解决方法
- 归并排序实现(python)
- mybatis invalid bound statement (not found) 当心文件确实不存在
- web开发
- 集合详解(二)--Set集合
- 对象数组例子
- 对象数组——简单内存分配
- JavaWeb——Tomcat服务器学习和使用(一)
- linux下好用的工具