Files
SignatureSystem/stop_mysql.bat
2026-07-20 13:16:17 +08:00

52 lines
1.5 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul 2>&1
title 停止 MySQL - 自动签名系统
cd /d "%~dp0"
set MYSQL_HOME=%~dp0mysql
echo ========================================
echo 停止 MySQL 服务...
echo ========================================
echo.
netstat -aon | findstr ":33366 " | findstr "LISTENING" >nul 2>&1
if !errorlevel! neq 0 (
echo [MySQL] 端口 33366 未监听, MySQL 未在运行
timeout /t 3 >nul
exit /b 0
)
if exist "%MYSQL_HOME%\bin\mysqladmin.exe" (
echo [MySQL] 正在发送 shutdown...
"%MYSQL_HOME%\bin\mysqladmin.exe" -u root --port=33366 shutdown 2>nul
if !errorlevel! equ 0 (
echo [MySQL] 等待端口释放...
set DOWN=0
for /L %%i in (1,1,15) do (
if !DOWN! equ 0 (
timeout /t 1 /nobreak >nul 2>&1
netstat -aon | findstr ":33366 " | findstr "LISTENING" >nul 2>&1
if !errorlevel! neq 0 (
set DOWN=1
echo [MySQL] 已停止
)
)
)
if !DOWN! equ 0 echo [MySQL] 端口仍被占用, 可能需要手动 taskkill mysqld.exe
) else (
echo [MySQL] shutdown 失败, 尝试 taskkill mysqld.exe
taskkill /f /im mysqld.exe >nul 2>&1
)
) else (
echo [错误] 未找到 mysqladmin.exe: %MYSQL_HOME%\bin\mysqladmin.exe
echo 尝试 taskkill mysqld.exe
taskkill /f /im mysqld.exe >nul 2>&1
)
echo.
echo 完成。 Web 服务不受影响 (如仍在运行)。
timeout /t 3 >nul
exit /b 0