MySQL 1067错误本质是Windows服务启动失败,源于配置错误、路径权限问题或依赖缺失;需用mysqld --console手动运行查初始化阶段致命错误,重点排查my.ini路径、编码、basedir/datadir权限及废弃配置项。

MySQL 1067 错误本质是 Windows 服务启动失败,不是 MySQL 自身报错
Windows 下 MySQL 作为服务启动时显示“错误 1067:进程意外终止”,这其实是 sc.exe 或服务控制管理器(SCM)返回的通用错误码,**不代表 MySQL 崩溃了,而是它根本没成功进入运行状态就退出了**。真正原因一定藏在 MySQL 启动过程中——最可能的是配置错误、路径权限问题或依赖缺失。
必须先看 mysqld.err 日志,但默认可能根本没生成
很多人翻遍 data 目录找不到 mysqld.err,因为 MySQL 在无法完成初始化前压根不会打开错误日志文件。正确做法是:用命令行手动运行 mysqld,强制它把启动过程中的所有输出打印到终端:
mysqld --defaults-file="C:\my.ini" --console
注意:--console 是关键,它绕过日志重定向,把初始化阶段的致命错误(比如 Can't find file: '.\mysql\plugin.frm'、unknown variable 'skip-federated'、Failed to open log file)直接暴露出来。如果连这一步都卡住没输出,大概率是 my.ini 路径错、文件编码含 BOM、或 basedir/datadir 指向了不存在/无权限的目录。
高频踩坑点:my.ini 配置和权限问题
以下几类配置错误几乎占 1067 问题的 80% 以上,且往往没有明显提示:
-
basedir和datadir路径中含中文、空格或符号(如C:\Program Files\MySQL),必须用双引号包裹,且确保路径真实存在 -
log-error指向的目录不可写(比如写到了C:\根目录,而当前服务账户无权限),此时 MySQL 会静默失败 - 混用了旧版配置项,例如
skip-innodb(MySQL 5.7+ 已废弃)、default-storage-engine拼错成default-storage-engin - innodb_log_file_size 值大于现有 ib_logfile* 文件实际大小,导致 InnoDB 初始化拒绝启动
服务账户权限不足是最隐蔽的元凶
MySQL 服务默认以 LocalSystem 运行,看似权限很高,但它无法访问网络路径、某些加密卷,且对 NTFS 权限敏感。更常见的是你手动改成了某个域用户或普通用户账号,却没给该账户对 datadir 和 basedir 的「完全控制」权限。验证方法很简单:
右键 datadir 文件夹 → 「属性」→ 「安全」→ 查看该服务账户是否在列表中,且「修改」「写入」权限已勾选。别信「继承自父项」——手动点「编辑」再确认一遍。
真正棘手的情况是:错误日志里只显示 Aborting 就退出,连具体模块都没来得及加载。这时候唯一可靠的办法,就是用 Process Monitor(Sysinternals 工具)过滤 mysqld.exe 的所有文件/注册表操作,看它卡在哪个 ACCESS DENIED 上。


















