MySQL默认端口3306被占用时,应先用netstat或lsof查PID及进程名,再终止无关进程或修改my.ini/my.cnf中port为3307并重启服务,连接时加-P 3307。

MySQL 默认使用 3306 端口,安装时若提示“端口被占用”或服务启动失败,说明该端口正被其他程序(如另一个 MySQL 实例、Apache、Skype、某些数据库工具等)占用。解决的核心思路是:查清谁占了端口 → 停掉它,或让 MySQL 改用其他端口。
确认 3306 端口是否真被占用
先别急着改配置,用命令验证实际占用情况:
- Windows:打开命令提示符,执行 netstat -ano | findstr :3306,查看 PID;再用 tasklist | findstr "PID号" 查对应进程名。
- macOS / Linux:终端运行 sudo lsof -i :3306 或 sudo netstat -tulpn | grep :3306,直接显示占用进程。
常见占用者包括:旧版 MySQL(未卸载干净)、MariaDB、XAMPP/MAMP 中的 MySQL、Docker 容器、甚至某些国产软件(如腾讯电脑管家、360 的数据库监控模块)。
临时释放端口:结束占用进程
如果确认是无关或可停的服务,直接终止即可:
- Windows:在任务管理器中找到对应 PID 的进程,右键“结束任务”;或命令行执行 taskkill /PID XXXX /F(XXXX 替换为查到的 PID)。
- macOS/Linux:执行 kill -9 PID(PID 替换为查到的数字)。
注意:若占用进程是正在使用的数据库服务(比如你本地还有个 MariaDB),强行结束可能影响业务,建议优先考虑更换 MySQL 端口。
永久解决:修改 MySQL 配置文件绑定新端口
编辑 MySQL 的配置文件(Windows 通常是 my.ini,macOS/Linux 是 my.cnf),找到 [mysqld] 段落,添加或修改:
port = 3307保存后重启 MySQL 服务(Windows 可在服务管理器中重启 “MySQL80”,macOS/Linux 执行 sudo systemctl restart mysql 或 brew services restart mysql)。之后连接时需指定新端口:mysql -u root -p -P 3307(注意大写 P)。
安装时跳过端口检查(仅限初装且确定无冲突)
部分图形化安装器(如 MySQL Installer for Windows)在“Type and Networking”步骤中提供端口设置选项。勾选“Use Legacy Authentication Method”旁的“Advanced Options”,可手动输入端口号。若已报错退出,重运行安装器,进入“Advanced Configuration”环节修改即可。










