本文共 1976 字,大约阅读时间需要 6 分钟。
MySQL 8 安装或启动过程中,如果系统找不到 my.ini 文件,通常意味着 MySQL 服务器无法找到其配置文件。在 Windows 系统上,MySQL 8 预期使用 my.ini 作为配置文件,而不是某些情况下使用的 my.cnf 文件。
通过运行以下命令查看 MySQL 的安装路径:
mysql --execute "SELECT @@basedir;"
然后进入安装目录,检查是否存在 my.ini 文件。如果不存在,可以按照以下步骤创建 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'
在命令行中运行以下命令,确保 MySQL 使用正确的 my.ini 文件:
mysqld --defaults-file="D:\OpenResource\MySQL\MySQL Server 8.3\my.ini"
在命令行中执行以下命令重启 MySQL 服务:
# 停止 MySQL 服务器net stop mysql# 启动 MySQL 服务器net start mysql
MySQL 5.7.5 及以上版本启用了功能依赖检测功能,若启用了 ONLY_FULL_GROUP_BY
SQL 模式,MySQL 会拒绝那些在 GROUP BY 子句中引用未命名集合列或依赖这些集合列的查询。
查看当前配置:
SELECT @@global.sql_mode;
SELECT @@datadir;
修改 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'
sql_mode
中添加 NO_AUTO_CREATE_USER
;如果是 8.x,则不必添加,否则可能导致服务无法启动。重启 MySQL 服务:
net stop mysql
net start mysql
sql_mode
配置正确,建议在修改前备份配置文件。NO_AUTO_CREATE_USER
,可能会导致某些功能异常,请谨慎处理。转载地址:http://lnbfk.baihongyu.com/