如何修改mysql默认端口_mysql端口配置说明

MySQL默认端口为3306,修改需编辑my.cnf或my.ini的[mysqld]段port参数(如port=3307),重启服务后验证监听并更新客户端连接配置、防火墙及安全组规则。

MySQL 默认端口是 3306,修改它主要是为了安全加固或避免端口冲突。改端口本身不难,但需同步更新客户端连接配置,否则会连不上。

修改 MySQL 配置文件中的端口

找到 MySQL 的主配置文件(通常是 my.cnfmy.ini),在 [mysqld] 段落下添加或修改 port 参数:

  • Linux/macOS 路径常见为:/etc/my.cnf/etc/mysql/my.cnf/usr/etc/my.cnf
  • Windows 下一般是:C:\ProgramData\MySQL\MySQL Server X.X\my.ini(注意 ProgramData 是隐藏文件夹)
  • 编辑时加入一行:port = 3307(换成你想要的非特权端口,1024–65535 之间)
  • 保存后必须重启 MySQL 服务才生效:systemctl restart mysqld(Linux)或服务管理器中重启(Windows)

确认端口已生效

重启后别急着连,先验证 MySQL 是否真在新端口监听:

  • Linux/macOS:运行 netstat -tuln | grep :3307ss -tuln | grep :3307
  • 登录 MySQL 后执行:SHOW VARIABLES LIKE 'port'; —— 查看实际使用的端口号
  • 用 telnet 或 nc 测试本地连通性:telnet 127.0.0.1 3307

更新客户端连接方式

端口改了,所有连接 MySQL 的地方都要同步调整:

  • 命令行连接需显式指定端口:mysql -u root -p -P 3307(注意大写 P)
  • 应用程序(如 PHP、Python、Java)的数据库连接字符串里,把 :3306 改成 :3307
  • 图形工具(如 Navicat、DBeaver、MySQL Workbench)新建连接时,主机后面填端口,例如:127.0.0.1:3307
  • 如果使用 socket 连接(localhost 默认走 socket),要改成 TCP 连接,即用 127.0.0.1 而不是 localhost

防火墙和 SELinux(Linux)注意事项

仅改配置还不够,系统级防护可能拦住新端口:

  • 开放对应端口:firewall-cmd --permanent --add-port=3307/tcp,再 reload
  • SELinux 若启用,需添加端口类型:semanage port -a -t mysqld_port_t -p tcp 3307
  • 云服务器(如阿里云、腾讯云)还需在安全组中放行该端口