博客
关于我
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
阅读量:801 次
发布时间:2023-02-11

本文共 1976 字,大约阅读时间需要 6 分钟。

MySQL 8 找不到 my.ini 配置文件及 sql_mode=only_full_group_by 的解决方案

一、找不到 my.ini 配置文件

MySQL 8 安装或启动过程中,如果系统找不到 my.ini 文件,通常意味着 MySQL 服务器无法找到其配置文件。在 Windows 系统上,MySQL 8 预期使用 my.ini 作为配置文件,而不是某些情况下使用的 my.cnf 文件。

通过运行以下命令查看 MySQL 的安装路径:

mysql --execute "SELECT @@basedir;"

然后进入安装目录,检查是否存在 my.ini 文件。如果不存在,可以按照以下步骤创建 my.ini 文件:

  • 默认安装情况

    • my.ini 文件应位于 MySQL 安装目录的根目录下。
  • 自定义安装或文件不存在

    • 在安装目录的根目录下创建一个新的 my.ini 文件。
  • 建议参考以下默认内容创建 my.ini 文件:

    [mysql]# 设置 mysql 客户端默认字符集default-character-set=utf8mb4[mysqld]# 设置 mysql 服务端默认端口port=3306# 设置 mysql 的安装目录(替换为你的实际路径)basedir="D:\OpenResource\MySQL\MySQL Server 8.3"# 设置 mysql 数据存储目录(替换为你的实际路径)datadir="D:\OpenResource\MySQL\MySQL Server 8.3\data"# 配置最大连接数max_connections=200# 配置连接失败次数max_connect_errors=10# 服务端字符集,默认使用 utf8mb4character-set-server=utf8mb4# 创建新表时默认存储引擎default-storage-engine=INNODB# 默认使用 mysql_native_password 插件进行认证default_authentication_plugin=mysql_native_password# 关闭 ONLY_FULL_GROUP_BYsql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

    2. 修改 my.ini 配置文件路径

    在命令行中运行以下命令,确保 MySQL 使用正确的 my.ini 文件:

    mysqld --defaults-file="D:\OpenResource\MySQL\MySQL Server 8.3\my.ini"

    3. 重启 MySQL 服务器

    在命令行中执行以下命令重启 MySQL 服务:

    # 停止 MySQL 服务器net stop mysql# 启动 MySQL 服务器net start mysql

    二、解决 sql_mode=only_full_group_by 问题

    问题描述

    MySQL 5.7.5 及以上版本启用了功能依赖检测功能,若启用了 ONLY_FULL_GROUP_BY SQL 模式,MySQL 会拒绝那些在 GROUP BY 子句中引用未命名集合列或依赖这些集合列的查询。

    解决方法

  • 查看当前配置

    • 查看 SQL 模式:
      SELECT @@global.sql_mode;
    • 查看数据目录:
      SELECT @@datadir;
  • 修改 my.ini 文件

    • 在 my.ini 文件中,修改 sql_mode 的值:
      # 关闭 ONLY_FULL_GROUP_BYsql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
    • 如果你的 MySQL 版本是 5.x,可以在 sql_mode 中添加 NO_AUTO_CREATE_USER;如果是 8.x,则不必添加,否则可能导致服务无法启动。
  • 重启 MySQL 服务

    • 停止 MySQL 服务器:
      net stop mysql
    • 启动 MySQL 服务器:
      net start mysql
  • 注意事项

    • 确保 sql_mode 配置正确,建议在修改前备份配置文件。
    • 如果你在 MySQL 8.0 中添加了 NO_AUTO_CREATE_USER,可能会导致某些功能异常,请谨慎处理。

    参考文章

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

    转载地址:http://lnbfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql添加用户并授予只能查询权限
    查看>>
    mysql添加用户权限报1064 - You have an error in your SQL syntax问题解决
    查看>>
    mysql添加索引
    查看>>
    mysql添加表注释、字段注释、查看与修改注释
    查看>>
    mysql清理undo线程_MySQL后台线程的清理工作
    查看>>
    mysql清空带外键的表
    查看>>
    MySQL清空表数据
    查看>>
    mysql源码安装
    查看>>
    Mysql源码安装过程中可能碰到的问题
    查看>>
    MySQL灵魂16问,你能撑到第几问?
    查看>>
    MySQL灵魂拷问:36题带你面试通关
    查看>>
    mysql状态分析之show global status
    查看>>
    mysql状态查看 QPS/TPS/缓存命中率查看
    查看>>
    mysql生成树形数据_mysql 实现树形的遍历
    查看>>
    mysql用于检索的关键字_Mysql全文搜索match...against的用法
    查看>>
    MySQL用得好好的,为什么要转ES?
    查看>>
    MySql用户以及权限的管理。
    查看>>
    MySQL用户权限配置:精细控制和远程访问的艺术!------文章最后有惊喜哦。
    查看>>
    mysql用户管理、常用语句、数据分备份恢复
    查看>>
    MySQL留疑问:left join时选on还是where?
    查看>>