Windows10下MySQL8.0.32永久关闭ONLY_FULL_GROUP_BY问题求助
解决Windows10下MySQL 8.0.32永久关闭ONLY_FULL_GROUP_BY的问题
一、定位MySQL实际加载的配置文件
修改正确的配置文件是核心,按以下方式找到服务真正读取的文件:
- 打开服务管理器(Win+R输入
services.msc),找到你的MySQL服务(通常为MySQL80),右键选择「属性」,查看「可执行文件的路径」,如果路径中带有--defaults-file=参数,后面的路径就是服务加载的配置文件,直接编辑该文件即可。 - 若未指定
--defaults-file,登录MySQL执行以下命令,直接获取当前服务加载的配置文件路径:
命令返回的SHOW VARIABLES LIKE 'config_file';Value字段就是需要编辑的文件路径。
二、正确配置sql_mode参数
找到配置文件后,按以下要求修改:
- 配置段必须为
[mysqld](服务端参数仅在此段生效,[client]是客户端连接参数,不影响全局sql_mode)。 - 参数名使用
sql_mode(下划线格式,不要用sql-mode),值中剔除ONLY_FULL_GROUP_BY,示例配置:
注意:建议不要给参数值加双引号,避免解析异常。[mysqld] sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
三、验证配置是否生效
- 重启MySQL服务:可在服务管理器中右键服务选择「重启」,或用命令行执行(替换为你的实际服务名):
net stop MySQL80 net start MySQL80 - 登录MySQL,执行以下命令检查全局sql_mode:
确认返回结果中没有SELECT @@GLOBAL.sql_mode;ONLY_FULL_GROUP_BY即配置生效。
四、常见问题排查
- 若配置仍不生效,以
SHOW VARIABLES LIKE 'config_file';返回的文件为准,避免修改了未被加载的配置文件。 - 权限问题:确保MySQL服务的运行账户(一般为Local System)有权限读取配置文件,若文件放在
C:\Program Files目录下,需给文件添加读取权限。 - 格式错误:检查
[mysqld]段是否正确,参数名和值是否拼写无误,不要有多余空格或符号。
内容的提问来源于stack exchange,提问作者Jörg
相关产品推荐
相关产品推荐

