XAMPP故障排查:使用Netstat工具排查哪个进程占用了3306端口

轻婷吖_2813

轻婷吖_2813

2026-06-15

719人浏览

原创

应先用tasklist /fi "pid eq 1234"查进程名或任务管理器按pid排序定位,若为mysqld.exe则需检查windows服务并停止mysql相关服务,而非仅杀进程。

xampp故障排查:使用netstat工具排查哪个进程占用了3306端口

netstat -ano | findstr :3306 能看到 PID 但不知道是哪个进程

这是最常卡住的第一步:命令跑出来一行或多行,比如 TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 1234,PID 是 1234,但你不确定它对应什么程序。

别急着关,先确认进程名:

  • 打开任务管理器 → “详细信息”页 → 右键表头 → 勾选“PID”,然后按 PID 列排序,直接找 1234 对应的 Image Name
  • 或者用命令:tasklist /FI "PID eq 1234",输出里 Image Name 那一栏就是进程名(常见有 mysqld.exe、Skype.exe、java.exe、dockerd.exe)
  • 如果 tasklist 没返回或提示“信息不可用”,说明该进程可能属于系统服务(比如 Windows 自带的 MySQL 服务),得去“服务”管理器里查 services.msc → 找名称含 MySQL 的服务

杀掉 mysqld.exe 后 netstat 还显示 3306 被占

这说明不是前台进程,而是后台服务在顽固运行。Windows 下尤其常见——哪怕你没手动启动过 MySQL,也可能装过旧版 MySQL Server 并设为自动启动。

必须检查服务层面:

  • 运行 services.msc → 找所有叫 MySQL、MySQL80、MariaDB 的服务 → 右键 → “停止”
  • 如果服务状态是“已禁用”但 netstat 仍报占用,说明注册表里还留着旧路径,比如 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL 下的 ImagePath 指向旧安装目录(如 C:\Program Files\MySQL\...),得手动改成 XAMPP 的路径(如 D:\xampp\mysql\bin\mysqld.exe)
  • 改完注册表后,**必须重启 explorer.exe 或直接重启电脑**,否则服务管理器不会刷新状态

改了 my.ini 的 port=3307,XAMPP 还连不上

只改 MySQL 配置文件远远不够。XAMPP 是个生态,phpMyAdmin、PHP 连接层、甚至你的本地项目,全默认认 3306。

XAMPP 8.0.30
XAMPP 8.0.30

XAMPP 8.0.30 是一款免费、开源的跨平台 Web 服务器集成包,专为快速搭建本地 PHP 开发环境而设计。该版本核心组件包括:Apache 2.4.56、MySQL 8.0.33、PHP 8.0.30、phpMyAdmin 5.2.1 等。它支持 Windows、Linux 和 macOS 系统,可让开发者在个人电脑上轻松模拟服务器环境,无需复杂配置即可运行 WordPress、Thin

下载

要同步改三处:

  • my.ini([mysqld] 段):确认 port=3307,且 bind-address=127.0.0.1(别写成 0.0.0.0 或空)
  • phpMyAdmin/config.inc.php:找到 $cfg['Servers'][$i]['port'] = '3306'; → 改成 '3307'
  • PHP 应用连接配置:比如 Laravel 的 .env 里 DB_PORT=3307,WordPress 的 wp-config.php 里 define('DB_HOST', '127.0.0.1:3307')

改完必须**完全退出 XAMPP 控制面板再重开**,只点 Stop/Start 不会重载 my.ini。

Linux/macOS 下 lsof 或 ss 查不到占用者

不是命令失效,而是权限或监听地址问题。MySQL 默认可能只监听 localhost(即 127.0.0.1),而 lsof -i :3306 默认不显示 Unix socket 或 IPv6 绑定。

更稳妥的查法:

  • 用 sudo lsof -iTCP:3306 -sTCP:LISTEN(加 -sTCP:LISTEN 精准过滤监听态)
  • 或 sudo ss -tulpn | grep ':3306'(-p 显示进程,-n 不解析端口名)
  • 如果仍为空,检查 MySQL 是否根本没启动,或 my.cnf 里写了 skip-networking 或 bind-address = 127.0.0.1 导致只走 socket —— 此时该看 socket=/tmp/mysql.sock 路径是否存在

真正麻烦的是 Docker 容器里的 MySQL:它可能映射了宿主机 3306,但 lsof 查不到容器内进程,得先 docker ps,再 docker stop 对应容器。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

xampp

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
开发工具有哪些
开发工具有哪些

开发工具有:1、集成开发环境IDE;2、版本控制系统VCS;3、自动化构建工具;4、测试工具;5、代码分析工具。本专题为大家提供开发工具有哪些的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2586

5

常用的mysql管理工具
常用的mysql管理工具

常用的mysql管理工具有:1、MySQL Workbench、phpMyAdmin、MySQL Shell、Navicat、DBeaver和DataGrip。更多关于mysql管理工具的问题,详情请看本专题下面的文章,php中文网欢迎大家前来学习。

2023.11.03

5670

11

phpmyadmin导入sql文件失败怎么办
phpmyadmin导入sql文件失败怎么办

在phpmyadmin导入sql文件失败时,可以尝试以下解决方案:1、检查文件权限和格式;2、确保文件字符集与数据库兼容;3、确认表结构兼容;4、检查外键约束和禁用外键检查;5、增加最大上传文件大小;6、分批导入或使用命令行导入;7、联系托管提供商寻求帮助。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.02

3424

7

phpmyadmin怎么改成中文
phpmyadmin怎么改成中文

通过安装中文语言包、将其上传到 phpmyadmin 目录、修改配置文件和重启 phpmyadmin,可以将 phpmyadmin 的界面改为中文。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

761

5

phpmyadmin访问不了怎么回事
phpmyadmin访问不了怎么回事

phpmyadmin 无法访问可能是以下原因造成:1、服务器问题:mysql 服务未运行或防火墙阻止访问;2、配置问题:安装/配置错误、错误的配置文件设置或缺少必要的 php 扩展;3、浏览器问题:浏览器缓存、扩展干扰或浏览器不兼容;4、其他原因:dns 问题、恶意软件或网络连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

879

6

phpMyAdmin安装教程大全
phpMyAdmin安装教程大全

本专题整合了phpMyAdmin程序安装相关教程,阅读专题下面的文章了解更多详细内容。

2025.10.31

885

23

PHPMyadmin配置
PHPMyadmin配置

本专题整合了phpmyadmin配置相关教程,阅读专题下面的文章了解更多详细步骤。

2025.12.04

509

19

XAMPP 与 phpMyAdmin 数据库管理实操
XAMPP 与 phpMyAdmin 数据库管理实操

专注于 XAMPP 内置的 phpMyAdmin 数据库管理工具,系统讲解数据库和数据表的创建与设计、SQL 语句执行、CSV/SQL 格式数据的导入导出、定时备份与一键还原、多数据库批量管理等日常操作,帮助开发者高效管理本地 MySQL 数据。

2026.04.08

335

26

XAMPP用法详解
XAMPP用法详解

本专题整合了XAMPP相关用法介绍,阅读专题下面的文章了解更多详细内容。

2026.04.08

253

20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程