mysql 默认监听 3306 端口,可通过 show variables like 'port' 查配置值,但应以 netstat/ss(linux/macos)或 netstat -ano(windows)查实际监听端口为准;修改需在配置文件 [mysqld] 段下设 port = 新端口号,重启服务并验证端口占用与防火墙放行。

确认 MySQL 当前监听的端口
安装完 MySQL 后,my.cnf(Linux/macOS)或 my.ini(Windows)里未必已显式配置端口,MySQL 默认使用 3306。直接查运行时实际绑定端口更可靠:
- Linux/macOS:执行
sudo netstat -tuln | grep :3306或sudo ss -tuln | grep :3306 - Windows:用
netstat -ano | findstr :3306,再通过 PID 查进程是否为mysqld.exe - 进入 MySQL 执行
SHOW VARIABLES LIKE 'port';,但注意这仅反映配置值,不保证端口未被占用或未被防火墙拦截
修改配置文件中的 port 参数
必须编辑 MySQL 的主配置文件,不是环境变量或启动脚本。常见路径:
- Linux:通常为
/etc/my.cnf或/etc/mysql/my.cnf,部分发行版用/etc/mysql/mysql.conf.d/mysqld.cnf - macOS(Homebrew):一般在
/opt/homebrew/etc/my.cnf或/usr/local/etc/my.cnf - Windows:通常是
C:\ProgramData\MySQL\MySQL Server X.X\my.ini(注意ProgramData是隐藏目录)
在 [mysqld] 段落下添加或修改这一行:
[mysqld] port = 3307
⚠️ 不要写在 [client] 或其他段落下——那只会改客户端默认连接端口,服务端仍监听 3306。
检查端口是否被占用并重启服务
换端口前务必验证目标端口空闲,否则 MySQL 启动会静默失败(日志里报 Can't start server: Bind on TCP/IP port):
小麦企业网站展示系统介绍:一、安装使用将xiaomai.sql导入数据库二、后台登录后台帐号,密码默认都是admin,config.php 配置文件可根据自行需要修改,IP地址,数据库用户名,密码,及表名后台目录默认admin,支持自行任意修改目录名三、注意事项1 本源码完全免费,采用伪静态,减少不必要的源码重复,速度更快,支持二次开发。2、注明本程序编码为UTF8,如发生乱码,请注意修改编码3、
- Linux/macOS:
lsof -i :3307或nc -zv localhost 3307(返回 connection refused 表示空闲) - Windows:
netstat -ano | findstr :3307
重启服务后验证生效:
sudo systemctl restart mysql # 或 sudo service mysqld restart # Windows: # net stop MySQLXX & net start MySQLXX
然后再次执行 SHOW VARIABLES LIKE 'port'; 和系统级端口监听检查,二者必须一致。
客户端连接和防火墙适配
改端口后,所有连接方式都需显式指定新端口,否则仍尝试连 3306:
- 命令行:
mysql -u root -p -P 3307(注意大写-P) - 连接字符串(如 Python 的
pymysql):port=3307参数不能漏 - 图形工具(DBeaver/Navicat):主机名后加
:3307,或单独填“端口”字段 - 防火墙(尤其是云服务器):需放行新端口,例如 Ubuntu 的
sudo ufw allow 3307
如果应用是通过 socket 文件连接(localhost 且未指定 -h),则不受端口影响;但一旦用 127.0.0.1 或远程 IP,就走 TCP,必须匹配新端口。









