mysql 报错This function has none of DETERMINISTIC解决方案

网络编程 2025-03-13 00:10www.168986.cn编程入门

这篇文章主要为我们提供了关于如何解决MySQL报错“This function has none of DETERMINISTIC”的指南。对于遇到这个问题的朋友们,这里有一些有用的信息和解决方案。

当你在创建存储过程时开启了MySQL的bin-log日志功能,你可能会遇到这样的错误:ERROR 1418 (HY000)。这是因为当你开启了bin-log,MySQL要求你在函数声明中指定其是否为DETERMINISTIC(不确定的)、NO SQL(无SQL语句或数据修改)、READS SQL DATA(仅读取数据)之一。这是因为这些参数对于二进制日志记录是必要的。

错误的原因在于我们开启了bin-log,而我们的函数没有指定上述的任何一个参数。为了解决这个问题,我们需要为我们的函数指定一个参数。以下是解决步骤:

我们需要查看当前的`log_bin_trust_function_creators`变量设置。这可以通过运行以下SQL命令来完成:

```sql

mysql> show variables like 'log_bin_trust_function_creators';

```

如果返回的值是OFF,我们需要将其设置为ON。为此,我们可以使用以下命令:

```sql

mysql> set global log_bin_trust_function_creators=1;

```

设置完成后,我们可以再次检查变量以确保其已正确设置。请注意,这种设置只在当前会话中有效。如果MySQL服务器重启,该设置将失效。为了确保设置持久有效,你需要在MySQL的配置文件(通常是myf或myi)中添加以下行:

```makefile

log_bin_trust_function_creators=1

```

这样就完成了对MySQL中该错误的解决方案的介绍。希望这篇文章能够帮助到有需要的朋友们。如果你在使用中遇到任何问题,欢迎随时向我们反馈和咨询。感谢大家对我们网站的支持!让我们一起学习和进步!

上一篇:vue 实现数字滚动增加效果的实例代码 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by