MySQL 1067错误本质是mysqld因my.ini编码(须ANSI非UTF-8)或路径配置(反斜杠需双写或改正斜杠、目录须存在)错误而静默崩溃,应通过命令行mysqld --console验证具体报错。

MySQL 1067 错误:服务无法启动,提示“进程意外终止”
这个错误本质是 Windows 服务管理器在尝试启动 mysqld 进程时,它立刻退出了,没留下有效日志。根本原因几乎都出在 my.ini 配置文件上——不是语法错,而是编码或路径写法让 mysqld 启动时直接崩溃。
my.ini 文件必须用 ANSI 编码(不是 UTF-8)
MySQL 5.7 及更早版本的 Windows 安装包自带的 mysqld.exe 不支持 UTF-8 编码的配置文件。如果你用 VS Code、Notepad++ 或记事本保存过 my.ini,默认很可能存成了 UTF-8(带 BOM 或无 BOM),mysqld 读到第一个非 ASCII 字符(比如中文注释、中文路径、甚至某些符号)就会静默退出,触发 1067。
- 用记事本打开
my.ini→「另存为」→ 编码下拉菜单选ANSI(不是 UTF-8,不是 UTF-8-BOM)→ 覆盖保存 - 如果文件里有中文注释(如
# 数据目录),先删掉;确认服务能启起来再考虑加回(且确保 ANSI 下显示正常) - 用
file my.ini(Linux/macOS)或 PowerShell 中Get-Content my.ini -Encoding Byte | Select -First 5检查前几个字节:ANSI 文件开头不会是EF BB BF(UTF-8 BOM)
Windows 路径中的反斜杠必须双写或改用正斜杠
my.ini 里所有涉及路径的配置项(basedir、datadir、log-error 等),如果用 ,必须写成 ;否则 、 这类会被解释成转义字符,导致路径非法,mysqld 初始化失败。
- 错误写法:
datadir=C:mysqldata(m被当转义,路径变成乱码) - 正确写法(任选其一):
datadir=C:\mysql\data或datadir=C:/mysql/data - 特别注意
log-error路径:如果指向不存在的目录(比如C:mysqllogserror.log但logs文件夹根本没建),mysqld也会 1067 退出 —— 先手动创建完整路径再试
验证配置是否生效:别依赖服务启动,先命令行跑一次
绕过 Windows 服务,直接以控制台模式运行 mysqld,能立刻看到真实报错,比等服务超时有用得多。
- 打开管理员权限的命令提示符,cd 到
basedirin目录 - 执行:
mysqld --defaults-file="C:mysqlmy.ini" --console(加--console强制输出到终端) - 如果看到类似
Can't change dir to 'C:mysqldata' (Errcode: 2)或Unknown suffix '.' used for variable 'port',就说明路径或配置项写错了 - 常见陷阱:
port值写成port = 3306(末尾空格)、character-set-server=utf8mb4写成utf8(旧版不认)、innodb_buffer_pool_size设得比物理内存还大
1067 错误真正麻烦的地方在于它不报具体原因。你得把 my.ini 当作一个“一次性可执行脚本”来对待:编码错一个字节、路径少一个反斜杠、值多一个空格,都可能导致进程连初始化阶段都过不去。动手改之前,先备份原文件;改完一定用命令行验证,别急着 net start mysql。


















