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

    你可能感兴趣的文章
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>
    multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
    查看>>
    MySQL DBA 数据库优化策略
    查看>>
    multi_index_container
    查看>>
    MySQL DBA 进阶知识详解
    查看>>
    Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
    查看>>
    Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
    查看>>
    mysql deadlock found when trying to get lock暴力解决
    查看>>
    Musetalk如何优化嘴部,提高清晰度?
    查看>>
    MuseTalk如何生成高质量视频(使用技巧)
    查看>>
    mutiplemap 总结
    查看>>
    MySQL DELETE 表别名问题
    查看>>
    Mutual Training for Wannafly Union #8 D - Mr.BG Hates Palindrome 取余
    查看>>