mySql 关闭自启
在 Windows 11 上,MySQL 安装时默认会设置为 开机自动启动(作为 Windows 服务运行)。你可以通过以下方法 关闭自启动,并在需要时 手动启动或停止 MySQL 服务。
🔧 方法一:通过「服务」管理器(图形界面)
✅ 关闭 MySQL 开机自启
- 按下
Win + R,输入services.msc,回车。 - 在服务列表中找到你的 MySQL 服务(名称通常是):
MySQL84MySQL80MySQL57- 或你安装时自定义的名称(如
MySQL)
- 右键点击该服务 → 属性。
- 在 “启动类型” 下拉菜单中,选择:
- 手动(推荐)→ 开机不启动,但可手动开启
或 - 禁用 → 完全禁止启动(包括手动)
- 手动(推荐)→ 开机不启动,但可手动开启
- 点击 应用 → 确定。
⚠️ 如果当前服务正在运行,建议先点击 “停止” 按钮再修改启动类型。
▶ 手动启动 / 停止 MySQL 服务(随时操作)
- 在
services.msc中:- 右键 MySQL 服务 → 启动(Start)
- 右键 → 停止(Stop)
- 右键 → 重新启动(Restart)
💻 方法二:使用命令行(管理员权限)
1. 查看 MySQL 服务名称
cmd
sc queryex type= service | findstr /i "mysql"
输出示例:
SERVICE_NAME: MySQL84
2. 禁止开机自启(设为手动)
cmd
sc config MySQL84 start= demand
demand表示“手动启动”。
注意:start=后面有一个空格!
3. 完全禁用(不推荐,除非确定不用)
cmd
sc config MySQL84 start= disabled
4. 手动启动 MySQL
cmd
net start MySQL84
5. 手动停止 MySQL
cmd
net stop MySQL84
📌 替换
MySQL84为你实际的服务名。
🔍 如何确认是否生效?
- 重启电脑后,打开任务管理器 → “服务” 标签,搜索
MySQL,看状态是否为“已停止”。 - 或运行:cmd查看
sc query MySQL84STATE字段。
✅ 推荐做法(开发场景)
- 将启动类型设为 “手动”(
demand):- 开机不自动占用内存和端口
- 需要时手动
net start MySQL84即可 - 不影响日常开发使用
如果你以后想恢复开机自启,只需将启动类型改回 “自动”:
cmd
sc config MySQL84 start= auto
或在 services.msc 中设置为“自动”。
批处理脚本启动 / 停止 MySQL 服务
将以下代码复制到一个文本文件中,保存为 MySQL_Control.bat(注意后缀是 .bat)
@echo off
:: MySQL 一键启动/停止脚本(Windows)
:: 自动检测服务状态并操作
:: 支持常见服务名:MySQL84, MySQL80, MySQL57, MySQL
setlocal enabledelayedexpansion
:: 检查是否以管理员身份运行
net session >nul 2>&1
if %errorLevel% NEQ 0 (
echo 请以管理员身份运行此脚本!
echo.
pause
exit /b
)
:: 尝试查找 MySQL 服务(按优先级)
set "mysql_service="
for %%s in (MySQL84 MySQL80 MySQL57 MySQL) do (
sc query "%%s" >nul 2>&1
if !errorlevel! EQU 0 (
set "mysql_service=%%s"
goto :found
)
)
:found
if "%mysql_service%"=="" (
echo 未找到 MySQL 服务。请确认是否已安装 MySQL。
echo 常见服务名:MySQL84, MySQL80, MySQL57
pause
exit /b
)
:: 查询当前服务状态
for /f "tokens=4" %%a in ('sc query "%mysql_service%" ^| findstr "STATE"') do set "state=%%a"
cls
echo ==========================================
echo MySQL 服务控制面板
echo 服务名称: %mysql_service%
echo 当前状态: %state%
echo ==========================================
if /i "%state%"=="RUNNING" (
echo.
echo [1] 停止 MySQL 服务
echo [2] 退出
choice /c 12 /m "请选择操作"
if errorlevel 2 exit /b
if errorlevel 1 (
net stop "%mysql_service%"
echo.
echo MySQL 服务已停止。
)
) else (
echo.
echo [1] 启动 MySQL 服务
echo [2] 退出
choice /c 12 /m "请选择操作"
if errorlevel 2 exit /b
if errorlevel 1 (
net start "%mysql_service%"
echo.
echo MySQL 服务已启动。
)
)
echo.
pause