首页 > 解决方案 > 变量“sql_mode”不能设置为“NO_AUTO_CREATE_USER”的值

问题描述

我正在使用 MySQL Workbench 8.0。我正在尝试将测试数据转储到数据库,包括所有表、存储过程和带有数据的视图。

当我尝试导入时,它说导入完成时出现一个错误,错误是

变量“sql_mode”不能设置为“NO_AUTO_CREATE_USER”的值操作失败,退出代码为 1

同样在导入后,如果我检查数据库,只有表来了,但根本没有存储过程。

如何解决这个问题?

标签: mysqlmysql-workbenchdata-import

解决方案


在从 MySQL Workbench 6.1 CE 导出我的数据库然后尝试将其导入到更新版本的 MySQL WorkBench 8.0.11 之后,我最近也遇到了这个问题。每个都使用社区服务器安装程序 msi 安装。

在做了一些搜索后,我在 MySQL 网站上发现了这个错误报告: Restaure dump created with 5.7.22 on 8.0.11

对我有用的解决方法是手动浏览我的转储文件并删除语句:

'NO_AUTO_CREATE_USER' 位于转储文件中每个例程转储的上方。 删除图像示例的语句

在我这样做之后,我收到了错误

第 318 行的错误 1418 (HY000):此函数在其声明中没有 DETERMINISTIC、NO SQL 或 READS SQL DATA,并且启用了二进制日志记录(您可能希望使用不太安全的 log_bin_trust_function_creators 变量)

但是在参考了这个已回答的问题后: 此函数在其声明中没有 DETERMINISTIC、NO SQL 或 READS SQL DATA,并且启用了二进制日志记录 ,只需输入:

SET GLOBAL log_bin_trust_function_creators = 1;

在 MySQL 命令行客户端中解决了这个问题,并最终允许我正确导入包含所有转储表、数据、例程和函数的数据库。

希望这可以节省其他人一些时间。


推荐阅读