mysql安装后修改默认端口号的配置方法

来源:这里教程网 时间:2026-02-28 20:52:49 作者:

确认 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
):

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,必须匹配新端口。

相关推荐