在使用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创建函数出错如何解决相关推荐

  1. mysql创建函数失败_mysql创建函数出现问题?

    大家好,帮我看看下面的mysql的函数有什么问题?一直创建不了. DELIMITER $$ DROP FUNCTION IF EXISTS check_if_exists$$ CREATE FUNCT ...

  2. mysql 创建索引失败_mysql创建多列索引及优化 - 没有所谓的失败!除非你不再尝试! - PHPChina ......

    什么是索引? 索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存.如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录.表里面 ...

  3. mysql创建新表失败_MySQL创建表失败的问题

    今天有一个朋友问我一个MySQL的建表问题,问题的现象是创建表失败,根据他的反馈,问题比较奇怪, CREATE TABLE XXX ..此处省略260多个字段 `xxxxIsAllowIn` varc ...

  4. mysql光标不见了_mysql创建光标失败

    展开全部 创建62616964757a686964616fe4b893e5b19e31333365636562存储过程和触发器 1.建表 首先先建两张表(users表和number表),具体设计如下图 ...

  5. mysql创建服务失败_mysql服务启动失败

    事情是这样的,我在linux系统下做mysql备份与还原实验.我先是进入mysql,创建一个数据库ds,然后在数据库建了一张innodb表stu,再往表里插入几条数据.因为是做实验只是在验证备份与还原 ...

  6. mysql 自定义函数教程_MySQL自定义函数

    MySQL自定义函数 函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程可以有0个或多个返回,函数就只能有一个返回 创建函数 #语法 参数列表包含两部分 参数名和参数类型 #函数体 ...

  7. rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)

    在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...

  8. mysql 自定义函数实例_mysql自定义函数原理与用法实例分析

    本文实例讲述了mysql自定义函数原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么 ...

  9. mysql 聚合函数嵌套_Mysql聚合函数嵌套如何使用 Mysql聚合函数嵌套使用方法

    Mysql聚合函数嵌套如何使用?本篇文章小编给大家分享一下Mysql聚合函数嵌套使用方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 目的:Mysql 聚合函数嵌套使用 ...

最新文章

  1. php索引数组转键数组,php索引数组和关联数组
  2. 面试必问!Tomcat 优化篇!
  3. BeautifulSoup的高级应用 之 contents children descendants string strings stripped_strings
  4. Java - Java集合中的快速失败Fail Fast 机制
  5. WCF技术剖析之二十一:WCF基本异常处理模式[中篇]
  6. 零中频接收机频率转换图_接收机抗噪声技术
  7. 使用Cordova将您的前端JavaScript应用打包成手机原生应用
  8. 臭名昭著的Java错误和陷阱
  9. linux内核 task cmd,linux内核
  10. C# 图片转换为base64
  11. .har 文件解析工具
  12. PowerBI使用折线图分析异常数据
  13. GLPI 无法登录、账号没有权限的解决方法
  14. Linux du命令(du -h ,du -s)
  15. uniapp的打包h5页面收不到验证码接口
  16. 洛谷-P1125-笨小猴
  17. 时序因果分析算法(THP)学习与代码分析
  18. OpenLayers 3自定义地图工具条(一)
  19. springboot使用华为OBS上传下载文件详解
  20. 港科夜闻|广东省委常委、副省长王曦到访香港科技大学

热门文章

  1. linux配置sftp访问指定目录,Linux创建用户,SFTP只允许访问指定目录
  2. Android引用RN第三方控件,Android和RN互调方式,最近开发心得
  3. 众生皆苦,愿你被世界温柔以待
  4. 深度学习 14. 深度学习调参,CNN参数调参,各个参数理解和说明以及调整的要领。underfitting和overfitting的理解,过拟合的解释。
  5. 【详解】Linux中 ~ / /home/ /root/之间区别和联系
  6. 微信开发者工具中的代码模块不显示
  7. Android 修改静态IP地址
  8. 为什么有些事我们明知道是正确的的,却不付诸行动呢?
  9. MIPS 指令译码器设计
  10. 小计64位win7上R读取excel过程