mysql创建函数失败问题解决办法
来源:互联网 发布:淘宝分流最多设置多少 编辑:程序博客网 时间:2024/05/29 11:26
在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况。下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考。
案例一:
目前在项目中,执行创建mysql的函数出错,
mysql 创建函数出错信息如下:
Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation
首先检查创建函数的功能是否开启,检查是否开启创建功能的SQL如下:
执行完SQL之后发现已经开启了,随检查自己的SQL是否写错(因为SQL是别人给的,在别人环境没问题,在自己的环境就有可能)。
突然发现了确实是SQL出现问题,由于他创建的SQL有指定用户,所以导致出现问题,以下是他的SQL:
DROP FUNCTION IF EXISTS `nextval`;DELIMITER ;;CREATE DEFINER=`devop`@`%` FUNCTION `nextval`(`seq_name` VARCHAR(50)) RETURNS varchar(20) CHARSET utf8BEGIN DECLARE seq_max BIGINT(20); UPDATE sequenceconftable SET `max` = `max` + NEXT WHERE NAME = seq_name; SELECT `max` INTO seq_max FROM sequenceconftable WHERE NAME = seq_name ; RETURN seq_max;END;;DELIMITER ;
由于CREATE_FUNCTION规范,可以发现就是DEFINER这个参数是可以指定数据库用户的,但是自己的库却不是这个用户,所以导致问题。
目前问题已经解决。
-EOF-
案例二:
在MySQL创建用户自定义函数时,报以下错误:
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)
这是因为有一个安全参数没有开启,log_bin_trust_function_creators 默认为0,是不允许function的同步的,开启这个参数,就可以创建成功了。
如果是在有master上开启了该参数,记得在slave端也要开启这个参数(salve需要stop后再重新start),否则在master上创建函数会导致replaction中断。
案例三:
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)
(0 ms taken)
分析:
根据系统提示,导致该错误的原因可能是一个安全设置方面的配置,查手册log_bin_trust_function_creators参数缺省0,是不允许function的同步的,一般我们在配置repliaction的时候,都忘记关注这个参数,这样在master更新funtion后,slave就会报告错误,然后slave stoped。
处理过程:
登陆mysql数据库
跟踪mysql的启动日志,slave正常运行,问题解决。
- mysql创建函数失败问题解决办法
- 使用EOS中bpf创建流程失败问题解决办法
- linux下安装MySQL安装 、启动失败 问题解决办法
- mysql安装问题解决办法
- mysql编码问题解决办法
- [mysql]创建函数失败(1418错误)
- Mysql启动失败问题解决
- mysql启动失败 问题解决
- Mysql启动失败问题解决
- MySQL安装失败问题解决
- ubuntu中eclipse环境下import cv2后opencv函数调用失败问题解决办法
- IIS 元数据库失败 问题解决办法
- sql 安装失败,com+ 问题解决 办法
- windows延缓写入失败相关问题解决办法
- “DllRegisterServer的调用失败”问题解决办法
- “DllRegisterServer的调用失败”问题解决办法
- APP Scode校验失败问题解决办法
- “DllRegisterServer的调用失败”问题解决办法
- 莫教引动虚阳发,精竭容枯百病 侵
- 开源.NET排列组合组件KwCombinatorics使用(二)——排列生成
- 戒淫格言
- IPTABLES命令
- apache无法解析php文件
- mysql创建函数失败问题解决办法
- GPS小程序
- Windows 函数调用
- NSThread - 2
- rest api请求时token的注入
- IT培训新模式——在线教育
- POJ3624
- 8_25 设置用户id或组id的程序绝对不能再调用system函数。安全漏洞
- JS实现货币格式化、货币繁体汉字化