在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,但无济于事。
1条答案
按热度按时间wn9m85ua1#
在%PROGRAMDATA%\MySQL\MySQL Server 8.0\my.ini中修改sql模式的定义完成了这项工作。