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 防火墙)。
