出现 Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER错误是因为在 MySQL 8.0 版本中,NO_AUTO_CREATE_USER
被移除了,不能作为 sql_mode
的值。
要解决这个问题,您可以尝试以下方法:
编辑 MySQL 配置文件:打开 MySQL 的配置文件,通常位于 /etc/mysql/mysql.conf.d/mysqld.cnf
或 /etc/my.cnf
,找到 sql_mode
的设置。
移除 NO_AUTO_CREATE_USER
:在 sql_mode
的值中,移除包含 NO_AUTO_CREATE_USER
的部分。确保保留其他有效的 sql_mode
值。
例如,将类似这样的设置:
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
修改为:
sql_mode =‘ STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION’
保存并关闭文件。
重启 MySQL 服务器:执行以下命令以重启 MySQL 服务器,使配置更改生效:
sudo systemctl restart mysql
NO_AUTO_CREATE_USER
'strict' => false, 'modes' => ['STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ERROR_FOR_DIVISION_BY_ZERO', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION'],//NO_AUTO_CREATE_USER mysql8需要注释
改为
'strict' => true,
'modes' => ['STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ERROR_FOR_DIVISION_BY_ZERO', 'NO_ENGINE_SUBSTITUTION'],//NO_AUTO_CREATE_USER mysql8需要注释
改完这些就可以了
本文为码上有钱原创文章,转载无需和我联系,但请注明来自码上有钱博客https://oldcai688.com
最新评论