mysql创建函数失败_MYSQL创建函数出错如何解决
在使用MySQL数据库时,有时会遇到MySQL函数不能创建的情况。下面就教您一个解决MySQL函数不能创建问题的方法,供您借鉴参考。希望能帮助到大家。
案例一:
目前在项目中,执行创建mysql的函数出错,
mysql 创建函数出错信息如下:
Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation
首先检查创建函数的功能是否开启,检查是否开启创建功能的SQL如下:-- 查看是否开启创建函数的功能
show variables like '%func%';
-- 开启创建函数的功能
set global log_bin_trust_function_creators = 1;
执行完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 utf8
BEGIN
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的同步的,开启这个参数,就可以创建成功了。mysql> show variables like '%fun%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
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 '%fun%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
1 row in set (0.00 sec)
如果是在有master上开启了该参数,记得在slave端也要开启这个参数(salve需要stop后再重新start),否则在master上创建函数会导致replaction中断。
案例三:
Error Code : 1418This 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数据库> set global log_bin_trust_function_creators = 1;
> start slave;
跟踪mysql的启动日志,slave正常运行,问题解决。
相关推荐:
mysql创建函数失败_MYSQL创建函数出错如何解决相关推荐
- mysql创建函数失败_mysql创建函数出现问题?
大家好,帮我看看下面的mysql的函数有什么问题?一直创建不了. DELIMITER $$ DROP FUNCTION IF EXISTS check_if_exists$$ CREATE FUNCT ...
- mysql 创建索引失败_mysql创建多列索引及优化 - 没有所谓的失败!除非你不再尝试! - PHPChina ......
什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面 ...
- mysql创建新表失败_MySQL创建表失败的问题
今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪, CREATE TABLE XXX ..此处省略260多个字段 `xxxxIsAllowIn` varc ...
- mysql光标不见了_mysql创建光标失败
展开全部 创建62616964757a686964616fe4b893e5b19e31333365636562存储过程和触发器 1.建表 首先先建两张表(users表和number表),具体设计如下图 ...
- mysql创建服务失败_mysql服务启动失败
事情是这样的,我在linux系统下做mysql备份与还原实验.我先是进入mysql,创建一个数据库ds,然后在数据库建了一张innodb表stu,再往表里插入几条数据.因为是做实验只是在验证备份与还原 ...
- mysql 自定义函数教程_MySQL自定义函数
MySQL自定义函数 函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程可以有0个或多个返回,函数就只能有一个返回 创建函数 #语法 参数列表包含两部分 参数名和参数类型 #函数体 ...
- rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)
在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...
- mysql 自定义函数实例_mysql自定义函数原理与用法实例分析
本文实例讲述了mysql自定义函数原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么 ...
- mysql 聚合函数嵌套_Mysql聚合函数嵌套如何使用 Mysql聚合函数嵌套使用方法
Mysql聚合函数嵌套如何使用?本篇文章小编给大家分享一下Mysql聚合函数嵌套使用方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 目的:Mysql 聚合函数嵌套使用 ...
最新文章
- php索引数组转键数组,php索引数组和关联数组
- 面试必问!Tomcat 优化篇!
- BeautifulSoup的高级应用 之 contents children descendants string strings stripped_strings
- Java - Java集合中的快速失败Fail Fast 机制
- WCF技术剖析之二十一:WCF基本异常处理模式[中篇]
- 零中频接收机频率转换图_接收机抗噪声技术
- 使用Cordova将您的前端JavaScript应用打包成手机原生应用
- 臭名昭著的Java错误和陷阱
- linux内核 task cmd,linux内核
- C# 图片转换为base64
- .har 文件解析工具
- PowerBI使用折线图分析异常数据
- GLPI 无法登录、账号没有权限的解决方法
- Linux du命令(du -h ,du -s)
- uniapp的打包h5页面收不到验证码接口
- 洛谷-P1125-笨小猴
- 时序因果分析算法(THP)学习与代码分析
- OpenLayers 3自定义地图工具条(一)
- springboot使用华为OBS上传下载文件详解
- 港科夜闻|广东省委常委、副省长王曦到访香港科技大学
热门文章
- linux配置sftp访问指定目录,Linux创建用户,SFTP只允许访问指定目录
- Android引用RN第三方控件,Android和RN互调方式,最近开发心得
- 众生皆苦,愿你被世界温柔以待
- 深度学习 14. 深度学习调参,CNN参数调参,各个参数理解和说明以及调整的要领。underfitting和overfitting的理解,过拟合的解释。
- 【详解】Linux中 ~ / /home/ /root/之间区别和联系
- 微信开发者工具中的代码模块不显示
- Android 修改静态IP地址
- 为什么有些事我们明知道是正确的的,却不付诸行动呢?
- MIPS 指令译码器设计
- 小计64位win7上R读取excel过程