三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

net start mysql80无法启动mysql服务解决思路

net start mysql80无法启动mysql服务解决思路

场景:

因为业务需要,需要对两个服务器部署的MYSQL进行跨库查询,因为服务器数据表是实时更新,需要修改my.ini配置文件启用FEDERATED ENGINE来创建实时的映射表来查询另外一个服务器下数据库中的数据

问题描述

当修改完my.ini配置文件后,重启MySQL服务,发现MySQL服务启动失败,而且没有返回任何报错原因。

MySQL80 服务无法启动。 服务没有报告任何错误。 请键入 NET HELPMSG3534以获得更多的帮助

原因分析:

当MySQL服务启动失败的时候,大部分原因是因为MySQL配置错误导致的,需要第一时间对my.ini配置文件进行排查

这里笔者第一时间,把刚刚新加在my.ini配置文件**(一般路径在C:\ProgramData\MySQL\MySQL Server 8.0下,这里ProgramData文件夹为隐藏项目,需要勾选住显示隐藏项目)**中的语句给删除,然后保存,重启MySQL服务器
然而,MySQL服务器依旧无法启动,依旧提示MySQL80 服务无法启动。服务没有报告任何错误。
这时候,需要对错误进行更深一步的排查
进入C:\ProgramData\MySQL\MySQL Server 8.0\Data目录下,找到记载错误日志的XXZX_WEB_NEW_SE.err文件,打开文件,找到今天日志

2026-08-10T02:01:17.226315Z 0 [Warning] [MY-010909] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Forcing close of thread 5456 user: 'admin'. 2026-08-10T02:01:17.226868Z 0 [Warning] [MY-010909] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Forcing close of thread 9 user: 'root'. 2026-08-10T02:01:17.227370Z 0 [Warning] [MY-010909] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Forcing close of thread 5457 user: 'admin'. 2026-08-10T02:01:17.227883Z 0 [Warning] [MY-010909] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Forcing close of thread 10 user: 'root'. 2026-08-10T02:01:17.982334Z 0 [System] [MY-010910] [Server] C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe: Shutdown complete (mysqld 8.0.36) MySQL Community Server - GPL.

err文件中只记录了MySQL服务被手动关闭,没有其他有用的信息,为了进一步抽丝剥茧,打开cmd,输入以下命令,通过前台直接启动MySQL,来获得更多信息

cd"C:\Program Files\MySQL\MySQL Server 8.0\bin"mysqld--console

当输入完成后,没有卡在ready for connections,而是弹出以下报错信息

2026-08-10T02:19:14.960308Z0[System][MY-010116][Server]C:\Program Files\MySQL\MySQL Server8.0\bin\mysqld.exe(mysqld8.0.36)starting as process72562026-08-10T02:19:14.965278Z0[Warning][MY-010091][Server]Can't create test file C:\Program Files\MySQL\MySQL Server8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test2026-08-10T02:19:14.965358Z0[Warning][MY-010091][Server]Can't create test file C:\Program Files\MySQL\MySQL Server8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test2026-08-10T02:19:14.965611Z0[ERROR][MY-013276][Server]Failed to set datadir to 'C:\Program Files\MySQL\MySQL Server8.0\data\'(OS errno:2-No such file or directory)2026-08-10T02:19:14.991822Z0[ERROR][MY-010119][Server]Aborting2026-08-10T02:19:14.992114Z0[System][MY-010910][Server]C:\Program Files\MySQL\MySQL Server8.0\bin\mysqld.exe:Shutdowncomplete(mysqld8.0.36)MySQL Community Server-GPL

通过返回的报错信息Failed to set datadir to ‘C:\Program Files\MySQL\MySQL Server 8.0\data’ (OS errno: 2 - No such file or directory)可以得出结论
MySQL 并没有加载原本存在的 my.ini
那么问题来了,为什么看似跟原本一样的配置文件my.ini没有被正确加载
带着这个疑问,笔者尝试强制指定my.ini启动,在cmd中输入以下命令

cd"C:\Program Files\MySQL\MySQL Server 8.0\bin"mysqld--defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"--console

强制启动没有成功,返回以下错误

mysqld:[ERROR]Found option without preceding group in config file C:\ProgramData\MySQL\MySQL Server8.0\my.ini at line1.mysqld:[ERROR]Fatal error in defaults handling.Program aborted!

这下问题根源找到了
Found option without preceding group in config file … at line 1
第 1 行在…之前出现了“非法内容”
产生这个错误最为常见的原因就是my.ini 文件编码 / BOM / 空字符导致 MySQL 无法解析
结合笔者之前用Windows自带的记事本编辑的配置文件,一切已经水落石出,记事本编辑
my.ini导致文件编码UTF-8 with BOM,而mysql8.0不支持此格式编码

解决方案:

既然是文件编码问题,最快最稳妥的解决方案就是用notepad++,来修改文件编码

把notepad++安装包拷进服务器,安装完成后,用notepad++打开配置文件,打开编码

把编码设置为ANSI,保存文件,然后再net start mysql80,编码调整后mysql服务器启动成功

← 返回列表