博客
关于我
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
阅读量:793 次
发布时间: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/

    你可能感兴趣的文章
    MySQL5.7.37windows解压版的安装使用
    查看>>
    mysql5.7免费下载地址
    查看>>
    mysql5.7命令总结
    查看>>
    mysql5.7安装
    查看>>
    mysql5.7性能调优my.ini
    查看>>
    MySQL5.7新增Performance Schema表
    查看>>
    Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
    查看>>
    Webpack 之 basic chunk graph
    查看>>
    Mysql5.7版本单机版my.cnf配置文件
    查看>>
    mysql5.7的安装和Navicat的安装
    查看>>
    mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
    查看>>
    Mysql8 数据库安装及主从配置 | Spring Cloud 2
    查看>>
    mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
    查看>>
    MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
    查看>>
    MYSQL8.0以上忘记root密码
    查看>>
    Mysql8.0以上重置初始密码的方法
    查看>>
    mysql8.0新特性-自增变量的持久化
    查看>>
    Mysql8.0注意url变更写法
    查看>>
    Mysql8.0的特性
    查看>>
    MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
    查看>>