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

这篇具有很好参考价值的文章主要介绍了mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

sql_mode=only_full_group_by问题产生原因:MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY
SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。

解决方法一(不推荐):临时sql_mode设置

1、navcat中新建查询:

select @@global.sql_mode
 
结果:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

以看到存在ONLY_FULL_GROUP_BY,问题就在这

2、修改sql_mode

set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

注意:“8.0.x的版本不支持NO_AUTO_CREATE_USER,去掉即可”

这样的方式只能解决单表,且如果Mysql服务重启(即服务器重启)则会被mysql的默认ini配置覆盖,因此不推荐。

解决方法二:修改Mysql的默认配置文件my.ini(永久配置,推荐)

1、通过select @@basedir;,查看mysql的安装路径,去安装目录查看有没有my.ini配置文件

2、通过select @@datadir;,查看mysql的数据存储路径

3、若没有my.ini,则新建一个my.ini文件,配置如下:

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录(你自己的目录)
basedir="D:\\Environment\\mysql-8.0.30-winx64"
# 设置mysql数据库的数据的存放目录
datadir="D:\\Environment\\mysql-8.0.30-winx64\\data"
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
#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'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306

配置中标红部分为解决问题的部分,其中注意配置需要有单引号包裹,如果你是mysql5.x,可以加上NO_AUTO_CREATE_USER;如果你是mysql8.x,则不需加上,若你加上,则会发生服务无法启动的情况

4、保存my.ini文件后,然后打开cmd,进入命令行,输入

  • –defaults-file为my.ini路径
mysqld  --defaults-file="C:\install\mysql\mysql-8.0.16-winx64\my.ini"

即修改mysql的配置文件路径

4.1、如果还没有安装mysql服务,只需要在安装的时候输入即可:

  • MySql80为服务名
  • –defaults-file为my.ini路径
mysqld --install "MySql80" --defaults-file="C:\install\mysql\mysql-8.0.16-winx64\my.ini"

5、重启mysql服务,通过select @@global.sql_mode;查看是否生效

本文参考:
1、mysql 8.0找不到my.ini配置文件解决方案
2、Mysql8配置sql_mode(解决group by遇到的Expression #2 of SELECT list is not in GROUP BY clause问题)文章来源地址https://www.toymoban.com/news/detail-817498.html

到了这里,关于mysql 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql缺少my.ini文件的解决方法

     1.在服务里停掉现有的mysql服务 2.打开管理员模式下的命令行窗口,win+r,先别按回车,在shift+ctrl+enter就能进入 3.进入到mysql的bin目录,执行命令 sc delete 服务名 这个服务名就是你在服务里看到的名字 4.添加my.ini文件 my.ini内容 [mysqld] port=3306 basedir=D:Environmentmysqlmysql-5.7.43 dat

    2024年02月03日
    浏览(34)
  • MySQL如何安装配置(含my.ini详细配置-新旧版通杀)

    对应全套文章链接: MySQL如何安装配置(含my.nin详细配置-新旧版通杀) (qq.com) 百度搜索MySQL 进入以下页面,在依次点击download、MySQL Community (GPL) Downloads » 点击 MySQL Community Server 我这里是window,自己选择相应的系统进行下载-选择第一个即可(免安装版) zip Archive:是直接解压缩

    2023年04月08日
    浏览(36)
  • 看了mysql8.0官网,发现set sql_mode原来有可以不用修改my.cnf或mysqld-auto.cnf就可以持久化系统变量的方式

    @@GLOBAL.sql_mode: 全局级别的设置,影响所有新的客户端连接。通常需要具有高级权限才能修改,且修改后对尚未建立连接的新会话生效,对当前已存在的会话无效。MySQL服务器重启后,如果没有在配置文件中永久设定,全局设置将恢复到服务器启动时的默认值或配置文件中的设

    2024年04月15日
    浏览(28)
  • MySQL 8.0.33 my.ini说明

    #其他默认调整值 #MySQL Server实例配置文件 # ------------------------------------------------------------------------------------------------------------------------------------------------------------- #由MySQL Server实例配置向导生成 # # #安装说明 # ------------------------------------------------------------------------------------

    2024年02月11日
    浏览(27)
  • MySQL my.cnf配置文件详解

     Windows 操作系统中 MySQL 的配置文件 my.ini。Linux 操作系统中 MySQL 的配置文件是 my.cnf,一般会放在 /etc/my.cnf 或 /etc/mysql/my.cnf 目录下。总的来说,my.cnf 类似于 my.ini 配置文件。 如果你使用 rpm 包安装 MySQL 找不到 my.cnf 文件,可参考《在linux下通过rpm安装的mysql找不到my.cnf解决方

    2024年02月04日
    浏览(29)
  • Mysql my.cnf配置文件参数详解

    Linux 操作系统中 MySQL 的配置文件是 my.cnf,一般会放在 /etc/my.cnf 或 /etc/mysql/my.cnf 目录下。 如果你使用 rpm 包安装 MySQL 找不到 my.cnf 文件,可参考如下: 第一步: 通过cd命令 cd /usr/share/mysql 来到这个目录, 通过命令 ls 后发现该目录有个 my-medium.cnf,其实该文件就是my.cnf,这是

    2024年02月06日
    浏览(25)
  • MySQL:查找my.cnf配置文件的路径

    默认的查找路径 参考 MySQL查看当前使用的配置文件my.cnf的方法

    2024年02月12日
    浏览(35)
  • Linux下查看MySQL的配置文件my.cnf位置

    安装mysql后,系统中会有多个my.cnf文件。 使用 locate my.cnf 命令可以列出所有的my.cnf文件: 命令输出结果中的–defaults-file,就是mysql启动加载的配置文件。如果没有输入结果,则表示没有设置使用指定目录的my.cnf。 mysql --help|grep \\\'my.cnf\\\' 查看mysql默认读取的my.cnf,按照从前到后的

    2024年02月15日
    浏览(29)
  • 【MySQL 8.0】标准配置文件详解(上)

    将按照不同的模块介绍配置项: 文末附上参考配置文件 socket MySQL 在本地可以通过 socket 方式连接,如果 my.cnf 配置文件中的 [client] 部分没有指定 socket 文件路径, mysql 默认会去寻找 /tmp/mysql.sock 为了安全考虑,通常会设置特定的 socket 路径 port 默认情况下,MySQL使用3306作为默

    2024年02月03日
    浏览(35)
  • mysql sql_mode数据验证检查

    sql_mode 功能 sql_mode 会影响MySQL支持的sql语法以及执行的 数据验证检查 。通过设置sql_mode ,可以完成不同严格程度的数据校验,有效地保障数据准确性 sql_mode 严格模式 VS 宽松模式 宽松模式 比如,插入的数据不满足 表的数据类型,也可能接受,并且不报错,只会有警告而且。

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包