MySQL:This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法

warning: 这篇文章距离上次修改已过209天,其中的内容可能已经有所变动。

MySQL中出现“This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration”错误,通常是因为在创建存储过程或函数时,没有明确指定其特性,而MySQL的二进制日志(binary log)功能又处于启用状态。为了解决这个问题,你可以采取以下步骤:

  1. 临时解决方案:在MySQL命令行中执行以下SQL语句,以允许创建可能不安全的存储过程或函数。但请注意,这只是一个临时解决方案,重启MySQL服务后设置将失效。
SET GLOBAL log_bin_trust_function_creators = TRUE;
  1. 永久解决方案:编辑MySQL的配置文件(通常是my.cnfmy.ini),在[mysqld]部分添加以下行:
[mysqld]
log_bin_trust_function_creators = 1

然后重启MySQL服务以使更改生效。

  1. 指定函数特性:在创建函数时,明确指定其特性,如DETERMINISTICNO SQLREADS SQL DATAMODIFIES SQL DATACONTAINS SQL。例如:
CREATE FUNCTION my_function(...)
RETURNS ...
DETERMINISTIC -- 或者其他特性
BEGIN
    -- 函数体
END;

请根据你的具体需求和函数行为选择合适的特性。

  1. 检查二进制日志设置:如果你不需要二进制日志功能,可以考虑禁用它。但请注意,这可能会影响到数据的恢复和主从复制等功能。

在采取以上任何步骤之前,请确保你了解它们的影响,并根据你的数据库环境和需求进行谨慎操作。如果你不确定如何操作,建议咨询数据库管理员或专业人士的意见。

最后修改于:2024年08月04日 18:13

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日