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

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日