博客
关于我
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
阅读量:796 次
发布时间: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中kill掉所有锁表的进程
    查看>>
    mysql中like % %模糊查询
    查看>>
    MySql中mvcc学习记录
    查看>>
    mysql中null和空字符串的区别与问题!
    查看>>
    MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
    查看>>
    MYSQL中TINYINT的取值范围
    查看>>
    MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
    查看>>
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>
    MySQL中使用IN()查询到底走不走索引?
    查看>>
    Mysql中使用存储过程插入decimal和时间数据递增的模拟数据
    查看>>
    MySql中关于geometry类型的数据_空的时候如何插入处理_需用null_空字符串插入会报错_Cannot get geometry object from dat---MySql工作笔记003
    查看>>
    mysql中出现Incorrect DECIMAL value: '0' for column '' at row -1错误解决方案
    查看>>
    mysql中出现Unit mysql.service could not be found 的解决方法
    查看>>
    mysql中出现update-alternatives: 错误: 候选项路径 /etc/mysql/mysql.cnf 不存在 dpkg: 处理软件包 mysql-server-8.0的解决方法(全)
    查看>>
    Mysql中各类锁的机制图文详细解析(全)
    查看>>
    MySQL中地理位置数据扩展geometry的使用心得
    查看>>
    Mysql中存储引擎简介、修改、查询、选择
    查看>>
    Mysql中存储过程、存储函数、自定义函数、变量、流程控制语句、光标/游标、定义条件和处理程序的使用示例
    查看>>