1. 以管理员身份打开 PowerShell
右键点击 Windows 开始菜单,选择 “Windows PowerShell(管理员)” 或 “终端(管理员)”。
2. 查找占用 3306 的进程
执行:
netstat -ano | findstr ":3306"
找到本地地址以 :3306 结尾、状态为 LISTENING 的行。最后一列是进程 PID,例如:
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 4268
这里的 PID 是 4268。
3. 查找服务名
把下面的 4268 换成实际查到的 PID:
tasklist /svc /FI "PID eq 4268"
例如输出:
映像名称 PID 服务
========================= ======== ============
mysqld.exe 4268 ESSmysql
其中 ESSmysql 就是服务名。如果输出的服务名不同,后续命令也要相应替换。
4. 查看程序路径
sc.exe qc ESSmysql
找到输出中的 BINARY_PATH_NAME,记录 mysqld.exe 的路径,确认它是否由其他软件安装。PowerShell 中要写 sc.exe。
5. 停止并移除服务
确认服务名后,复制执行:
try { Stop-Service -Name 'ESSmysql' -ErrorAction Stop; sc.exe delete ESSmysql } catch { Write-Error $_ }
如果服务名不是 ESSmysql,将命令中的两处 ESSmysql 都替换为实际名称。看到 DeleteService SUCCESS 表示删除服务注册成功。
6. 再次检查端口
netstat -ano | findstr ":3306"
如果没有本地地址以 :3306 结尾、状态为 LISTENING 的记录,说明 3306 端口已不再被监听。
上述操作会移除 Windows 服务,不会删除 MySQL 程序和数据库文件。如果还要清理程序文件,先根据第 4 步的路径确认归属;数据库 data 目录先备份或保留。
|