mysql 在Windows 10下永久设置sql_mode

uajslkp6  于 2023-03-28  发布在  Mysql
关注(0)|答案(1)|浏览(414)

在Windows 10下更新到MySQL 8.0.32后,我想永久关闭“sql_mode”中的ONLY_FULL_GROUP_BY。SET GLOBAL sql_mode ='...' 不是永久性的,默认设置(包括ONLY_FULL_GROUP_BY)在每次服务关闭/重新启动后都会重新建立。
所以我查找配置文件。执行>mysqladmin时我读到

Default options are read from the following files in the given order:
C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 8.0\my.ini C:\Program Files\MySQL\MySQL Server 8.0\my.cnf,

但是这些文件在我的系统中都不存在。所以我创建了C:\Program Files\MySQL\MySQL Server 8.0\my.cnf文件,内容如下:

[mysqld]

sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"

但在重新启动服务后,将执行 SELECT @@GLOBAL.sql_mode; 包括ONLY_FULL_GROUP_BY,与往常一样。
我将my.cnf重命名为my.ini,并使用其他目录保存该文件,然后在文件中将[mysqld]替换为[client],或将sql_mode替换为sql-mode,如建议的here,但无济于事。

wn9m85ua

wn9m85ua1#

在%PROGRAMDATA%\MySQL\MySQL Server 8.0\my.ini中修改sql模式的定义完成了这项工作。

相关问题