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

6次阅读

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

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

确认 MySQL 当前监听的端口

安装完 MySQL 后,my.cnf(Linux/macOS)或 my.ini(Windows)里未必已显式配置端口,MySQL 默认使用 3306。直接查运行时实际绑定端口更可靠:

  • Linux/macOS:执行 sudo netstat -tuln | grep :3306sudo 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:ProgramDataMySQLMySQL Server X.Xmy.ini(注意 ProgramData 是隐藏目录)

[mysqld] 段落下添加或修改这一行:

[mysqld] port = 3307

⚠️ 不要写在 [client] 或其他段落下——那只会改客户端默认连接端口,服务端仍监听 3306。

检查端口是否被占用并重启服务

换端口前务必验证目标端口空闲,否则 MySQL 启动会静默失败(日志里报 Can't start server: Bind on TCP/IP port):

  • Linux/macOS:lsof -i :3307nc -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,或单独填“端口”字段
  • 防火墙(尤其是云服务器):需放行新端口,例如 ubuntusudo ufw allow 3307

如果应用是通过 socket 文件连接(localhost 且未指定 -h),则不受端口影响;但一旦用 127.0.0.1 或远程 IP,就走 TCP,必须匹配新端口。

text=ZqhQzanResources