you *might* want to use the less safe log_bin_trust_function_creators variable

2023-11-11

一、报错过程
在MySQL8.0.13上创建自定义函数时出现此错误。

二、报错原因
因为MySQL8.0二进制日志默认开启,二进制日志的一个重要功能是用于主从复制,而存储函数有可能导致主从的数据不一致。所以当开启二进制日志后,参数log_bin_trust_function_creators就会生效,限制存储函数的创建、修改、调用。
点我,查看官方文档

三、解决问题
方法一
如果未使用主从复制,则设置为信任即可。具体做法如下:

设备MySQL全局变量
set global log_bin_trust_function_creators=1;
1
前一步设置变量重启MySQL后失效,所以我们还必须在my.cnf配置文件中[mysqld]模块下加上log_bin_trust_function_creators=1,这样就会永久生效。
方法二
明确指明函数的类型,明确告知MySQL服务器这个函数不会修改数据。

1、授予创建创建函数的用户super权限
grant super on *.* to 'user01'@'192.168.1.25';
1
注意: super是全局级别的权限,所以必须是:*.*。

2、在创建function的语句中添加函数类型。
声明函数类型的参数有:DETERMINISTIC、NO SQL、READS SQL DATA、MODIFIES SQL DATA和CONTAINS SQL。其中只有 DETERMINISTIC, NO SQL 和 READS SQL DATA 被支持。这样一来相当于明确的告知MySQL服务器这个函数不会修改数据,所以它是安全的。

例一:求两个整型的和
DELIMITER $$

CREATE
    FUNCTION `test`.`add1`(m INT, n INT)
    RETURNS INT
    NO SQL -- 声明函数没有SQL
    BEGIN
    RETURN (m+n);
    END$$

DELIMITER ;
1
2
3
4
5
6
7
8
9
10
11
例一:求test库中有几个存储过程和函数
DELIMITER $$

CREATE
    FUNCTION `test`.`func1`()
    RETURNS INT
    READS SQL DATA --声明函数只读数据。
    BEGIN
    DECLARE routine_cnt INT DEFAULT 0;
    SELECT COUNT(routine_name) INTO routine_cnt  FROM `information_schema`.`routines` WHERE routine_schema='test';
    RETURN routine_cnt;
    END$$

DELIMITER ;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

you *might* want to use the less safe log_bin_trust_function_creators variable 的相关文章

  • SQL统计高于和低于平均分的学生人数

    我在下面有一个示例表 我试图获取高于平均分数的学生人数和低于平均分数的学生人数 name subject classroom classarm session first term score first term grade std1 m
  • MySQL InnoDB 查询性能

    我正在尝试优化一个简单的 sql 查询 该查询将多次运行大量数据 这是场景 MySQL 与 InnoDB 表 where 和 join 中使用的所有字段都已索引 表有 FK 我不需要查询的整个缓存 但每个表的缓存是可能的 表有更多的更新 插
  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • 无法使用 Django 应用程序从容器连接到 MySQL docker 容器

    当我尝试从运行 Django 应用程序的 docker 容器连接到运行 MySQL 的容器时 出现以下错误 django db utils OperationalError 2003 Can t connect to MySQL serve
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 将记录分成两列

    我的数据库中有一个 学生 表 其中包含大约 5 000 条记录 我想将这些记录显示在two分区 如何在不执行查询两次的情况下做到这一点 仅使用单个查询 显示示例http www freeimagehosting net uploads f1
  • 比较表中的行以了解字段之间的差异

    我有一个包含 20 多列的表 客户端 其中大部分是历史数据 就像是 id clientID field1 field2 etc updateDate 如果我的数据如下所示 10 12 A A 2009 03 01 11 12 A B 200
  • Mysql innoDB 不断崩溃[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的数据库 mysql 服务器不断崩溃 重新启动 我不知道该怎么办 我不断在 dbname org err 文件中收到以下内容 13120
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • Webpack 4:如何使用 LESS 获取 CSS 源映射?

    多年来我一直在尝试让 CSS 源映射在 webpack 中工作 但没有成功 我不确定链条中哪里出了问题 我希望有人能指出我正确的方向 这是发生的事情 行号是错误的 实际上文件名也是错误的 main less只是包含一堆 import也就是说
  • 如何在编译引导程序时修复较少的错误?

    附件是编译时使用的跟踪grunt dist webmaker Anils MacBook Pro bootstrap anil grunt dist Running clean dist clean task Running less co
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l

随机推荐

  • 详解掩膜mask及不规则mask应用

    部分引用自 https www cnblogs com skyfsm p 6894685 html 在OpenCV中我们经常会遇到一个名字 Mask 掩膜 很多函数都使用到它 那么这个Mask到底什么呢 mask经常应用于 原图 src 与
  • [OpenCV实战]41 嵌入式计算机视觉设备选择

    文章目录 1 简介 1 1 深度学习与传统计算机视觉 1 2 性能考量 1 3 社区支持 2 结论 3 参考 在计算机视觉领域中 不同的场景不同的应用程序需要不同的解决方案 在本文中 我们将快速回顾可用于在单板计算机 指所有的逻辑线路 定时
  • Element UI的数据表格数据检索方法

    Element UI的数据表格数据检索方法 vue兼容性很好的前端组件 刚开始上手 感觉这一些方法功能蛮强大的 跟大家分享一下吧 一 表体数据检索 1 1 样式检索 如图 我们想根据数据表格中出现的特定文本 优 良 中 进行样式的检索 这种
  • Win10 bat 调用管理员运行打开/杀死进程

    原因 后台有个插件服务与其他进程存在端口 串口冲突 需要使用管理员身份杀死进程 注意 以下代码为bat脚本 保存时另存为 gt 编码格式选择 ANSI 在运行时则不会出现中文乱码 Q 如何调起管理员身份的cmd A 使用vbs脚本 代码如下
  • 应急响应思路

    一 挖矿病毒应急响应 1 判断遭遇的挖矿木马 a 挖矿木马挖矿现象 1 cpu占用过高2 网络连接外部网络3 配置文件特征pools b 排查网络链接及进程定位挖矿木马 1 排查定时任务2 排查守护连接 c 判断挖矿木马时间 d 判断挖矿木
  • ES 22 - Elasticsearch中如何进行日期(数值)范围查询

    目录 1 范围查询的符号 2 数值范围查询 3 时间范围查询 3 1 简单查询示例 3 2 关于时间的数学表达式 date math 3 3 关于时间的四舍五入 4 日期格式化范围查询 format 5 时区范围查询 time zone 1
  • nginx-ingress配置跨域

    nginx ingress controller 配置跨域 直接在ingress 的annation里面加 kubernetes io ingress class nginx nginx ingress kubernetes io cors
  • 《动手学深度学习 Pytorch版》 3.3 线性回归的简洁实现

    import numpy as np import torch from torch utils import data from d2l import torch as d2l from torch import nn nn 是神经网络
  • 34_windows环境debug Nginx 源码-配置WSL和CLion

    文章目录 WSL 中安装 编译构建使用的相关软件 重装默认的 ssh 创建 libstdc so 软链接 34 windows环境debug Nginx 源码 配置WSL和CLion WSL 中安装 编译构建使用的相关软件 sudo apt
  • 锁的四种状态与锁升级过程 图文详解

    一 前言 锁的状态总共有四种 级别由低到高依次为 无锁 偏向锁 轻量级锁 重量级锁 这四种锁状态分别代表什么 为什么会有锁升级 其实在 JDK 1 6之前 synchronized 还是一个重量级锁 是一个效率比较低下的锁 但是在JDK 1
  • android audio flinger

    我的书 购买链接 京东购买链接 淘宝购买链接 当当购买链接 Audio 创建 frameworks av media mediaserver main mediaserver cpp 47 int main int argc unused
  • Linux-arm架构下配置qtcreator

    QTCreator要想在Linux arm架构下运行 必须要保证两个 1 qt要在arm下编译生成对应库文件和qmake 2 qtCreator 要在arm架构下编译 这里主要是要区别qt库和qtcreator 细节可以百度 编译qt可以参
  • 在网页中插入视频的代码

    今天在网站上看到一个在网页上显示视频的代码 觉得很有用 先收藏一下 以后备用 直接加入这个代码就可以了 由于本地网站视频会对服务器造成很大的压力 所以可以先上传到这种免费的网站上 然后直接引用链接即可 这不但减轻服务器的
  • 特征筛选8——递归特征删除(REF)筛选特征(有监督筛选)

    Recursive feature elimination RFE 是通过递归的删除一些特征 最终得到模型结果 RFE思路如下 首先借助模型训练所有特征 得到各个特征的权重 从权重最小的特征开始 删除特征后重新训练模型 得到除了被删特征外的
  • 测试人员知识盲区:移动端专项测试到底怎么做?

    01 专项测试测什么 资源类性能测试 CPU占用 内存占用 内存泄漏 低资源环境表现 弱网络测试 速度类性能测试 FPS测试 端到端业务延时 速度分析 客户端 网络 服务器 稳定性测试 MTTF Monkey test 兼容性测试 Andr
  • 在没有配置的dns服务器响应之后名称,在没有配置的dns服务器响应之后

    在没有配置的dns服务器响应之后 内容精选 换一换 在大型网络应用中 通常会使用多台服务器提供同一个服务 为了平衡每台服务器上的访问压力 通常会选择采用负载均衡来实现 提高服务器响应效率 云解析服务支持解析的负载均衡 也叫做带权重的记录轮询
  • 信息安全导论复习题

    一 判断题 在本题的每一小题的括号中 正确的填入 错误的填入 每题 2 分 1 F 网络软件的漏洞和 后门 没有区别 2 F 网络物理威胁中的身份识别错误与身份鉴别威胁具有相同的意义 3 T 电子窃听不一定要把窃听设备安装在线路上 4 F
  • 若依免密登录

    最近做了一个微信扫码登录的功能整合到若依中 当扫码完成后 如何确定是哪个用户 以及权限有哪些 因为shiro的加密基于MD5所以密码不可逆 则不能从数据库查询后再解密 简单一些的话可以把需要登录的用户账号密码写死在配置文件中 我之前就是这么
  • 经典SQL语句大全

    SQL语句参考 包含Access MySQL 以及 SQL Server 基础 创建数据库 CREATE DATABASE database name 删除数据库 drop database dbname 备份sql server 创建 备
  • you *might* want to use the less safe log_bin_trust_function_creators variable

    一 报错过程 在MySQL8 0 13上创建自定义函数时出现此错误 二 报错原因 因为MySQL8 0二进制日志默认开启 二进制日志的一个重要功能是用于主从复制 而存储函数有可能导致主从的数据不一致 所以当开启二进制日志后 参数log bi