必须以管理员身份运行终端,否则mysqld --install一定失败;需右键开始选“终端(管理员)”,cd /d切到bin目录并确认mysqld.exe存在,推荐显式指定服务名如MySQL80且路径不含尾部反斜杠,注册成功后须用sc config或services.msc设启动类型为“自动”并手动启动。
必须以管理员身份运行终端,否则 mysqld --install 一定失败。这不是命令写错,是 Windows UAC 拦截了服务注册操作——普通 CMD 或 PowerShell 窗口执行只会报 Access is denied 或静默无响应。
mysqld --install 的正确姿势右键「开始」→ 选「终端(管理员)」或「命令提示符(管理员)」,别用搜索框点开的普通窗口;
用 cd /d C:mysqlbin 切到 MySQL 的 bin 目录(/d 支持跨盘符,比单纯 cd 可靠);
先 dir mysqld.exe 确认文件存在,再跑注册命令。
MySQL,但若系统已有同名服务(旧版残留、Installer 装过),mysqld --install 会静默失败,不报错也不提示mysqld --install MySQL80 --defaults-file="C:mysqlmy.ini"
MySQL 8.0 ❌,MySQL80 ✅C:Program FilesMySQL)时,整个 mysqld 命令必须用英文双引号包裹:"C:Program FilesMySQLMySQL Server 8.0binmysqld" --install MySQL80
mysqld --install 成功 ≠ 服务能启动注册只把服务写进 Windows 服务管理器,真正启动时才校验配置和目录。常见卡点全在 my.ini 和初始化上:
--defaults-file 必须是绝对路径,且文件必须已存在;省略则按固定顺序找配置(根目录 → Windows 目录 → etc),极易漏掉basedir 和 datadir 路径末尾不能带反斜杠:C:mysql ❌,C:mysql ✅datadir 必须为空(首次安装)且 MySQL 进程要有完全控制权限(给 NETWORK SERVICE 用户加“完全控制”)Can't open the mysql.plugin table —— 先跑 mysqld --initialize --console
服务注册成功后,services.msc 就能看见对应条目。改启动类型这步容易被跳过,但缺它就白注册:
sc config MySQL80 start= auto(注意 start= 后面有空格)net start | findstr MySQL80,或重启后立刻查服务状态最常被忽略的是 datadir 权限和 my.ini 中路径末尾的反斜杠——看着一样,Windows 却会拒绝启动,错误日志只报模糊的「系统错误 1067」,得翻 DESKTOP-XXX.err 才能定位。