Skip to content
On this page

mySql 关闭自启

在 Windows 11 上,MySQL 安装时默认会设置为 开机自动启动(作为 Windows 服务运行)。你可以通过以下方法 关闭自启动,并在需要时 手动启动或停止 MySQL 服务


🔧 方法一:通过「服务」管理器(图形界面)

✅ 关闭 MySQL 开机自启

  1. 按下 Win + R,输入 services.msc,回车。
  2. 在服务列表中找到你的 MySQL 服务(名称通常是):
    • MySQL84
    • MySQL80
    • MySQL57
    • 或你安装时自定义的名称(如 MySQL
  3. 右键点击该服务 → 属性
  4. “启动类型” 下拉菜单中,选择:
    • 手动(推荐)→ 开机不启动,但可手动开启
    • 禁用 → 完全禁止启动(包括手动)
  5. 点击 应用确定

⚠️ 如果当前服务正在运行,建议先点击 “停止” 按钮再修改启动类型。


▶ 手动启动 / 停止 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 MySQL84
    
    查看 STATE 字段。

✅ 推荐做法(开发场景)

  • 将启动类型设为 “手动”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

上次更新于: