mysql默认端口3306可修改为提升安全或解决冲突,需编辑my.cnf/my.ini中[mysqld]段的port值,并同步调整bind-address,重启服务后用lsof/netstat、mysql客户端及select @@port验证,客户端连接须同步更新端口。

MySQL 默认端口是 3306,修改它主要是为了安全加固或避免端口冲突。操作核心在于修改配置文件并重启服务,不同系统路径略有差异,但逻辑一致。
找到并编辑 MySQL 配置文件
MySQL 读取的主配置文件通常是 my.cnf(Linux/macOS)或 my.ini(Windows),位置可能在:
- /etc/my.cnf 或 /etc/mysql/my.cnf(Linux 系统级)
- /usr/etc/my.cnf(部分 macOS 或源码安装)
- MySQL 安装目录下的 my.ini(Windows,如 C:\Program Files\MySQL\MySQL Server 8.0\my.ini)
- 用户家目录下 ~/.my.cnf(优先级较低,一般不用于端口设置)
用文本编辑器打开后,查找 [mysqld] 段落,在其下方添加或修改 port 行:
port = 3307确认 bind-address 设置(关键!)
仅改 port 不够,如果 bind-address 被设为 127.0.0.1,新端口仍只监听本地回环,远程连接会失败。如需外部访问,需同步调整:
- 允许本机所有接口: bind-address = 0.0.0.0
- 仅允许特定 IP(如内网): bind-address = 192.168.1.100
- 保持仅本地访问(推荐测试环境):保留 bind-address = 127.0.0.1,此时新端口也只响应 localhost
注意:开放 0.0.0.0 后,务必配合防火墙和 MySQL 用户权限控制,避免暴露风险。
重启 MySQL 服务并验证
保存配置后必须重启服务才能生效:
- Linux(systemd):sudo systemctl restart mysqld 或 sudo systemctl restart mysql
- macOS(Homebrew):brew services restart mysql
- Windows:net stop mysql && net start mysql(服务名以实际为准,如 mysql80)
验证是否成功:
- 查看进程监听:sudo lsof -i :3307(Linux/macOS)或 netstat -ano | findstr :3307(Windows)
- 本地连接测试:mysql -u root -p -P 3307(-P 大写,指定端口)
- 检查运行时变量:SELECT @@port;(登录后执行)
客户端连接需同步更新端口
修改服务端口后,所有连接方都必须显式指定新端口:
- 命令行客户端:mysql -h 127.0.0.1 -P 3307 -u root -p
- 应用程序连接字符串中加入 port=3307(如 JDBC:jdbc:mysql://localhost:3307/dbname)
- 图形工具(如 MySQL Workbench、DBeaver)需在连接配置里修改 Port 字段
防火墙若启用,还需放行新端口(如 Linux 的 ufw/firewalld,Windows Defender 防火墙)。










