mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案例子解析

在这里插入图片描述

代码示例:

关于MySQL 8.0找不到my.ini配置文件的问题,通常在Windows系统中,MySQL 8.0可能不会自动生成my.ini文件。你可以通过以下步骤来解决这个问题:

  1. 确认my.ini文件的位置。你可以通过MySQL命令行执行SHOW VARIABLES LIKE 'datadir';来查看数据目录,通常my.ini文件会在这个目录下。如果没有找到,你可以在%PROGRAMDATA%\MySQL\MySQL Server 8.0\目录下创建一个新的my.ini文件。

  2. 如果你需要创建一个新的my.ini文件,可以参考以下模板,并根据你的实际情况进行修改:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
basedir = D:\MySQL
datadir = D:\MySQL\data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  1. 创建或修改my.ini文件后,你需要重启MySQL服务以使更改生效。如果你是通过命令行安装的MySQL,可以使用以下命令来指定配置文件并启动服务:
mysqld --defaults-file="C:\path\to\your\my.ini" --install "MySql80"
  1. 如果你还没有安装MySQL服务,可以在安装时指定my.ini文件。

关于sql_mode=only_full_group_by的问题,这是MySQL 8.0默认的SQL模式之一,它要求在使用GROUP BY时,所有非聚合的SELECT列表中的列都必须在GROUP BY子句中。如果你需要关闭这个模式,可以按照以下步骤操作:

  1. 通过命令行修改全局SQL模式:
SET GLOBAL sql_mode=(SELECT REPLACE(@@GLOBAL.sql_mode,'ONLY_FULL_GROUP_BY',''));
  1. 或者,你可以在my.ini文件中的[mysqld]部分添加或修改sql_mode的设置,去掉ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  1. 修改后,重启MySQL服务以应用更改。

请注意,修改配置文件和SQL模式可能会影响数据库的行为,建议在测试环境中先行验证更改的影响。如果需要更详细的帮助,可以参考MySQL官方文档或社区支持。

喜欢本文,请点赞、收藏和关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值