如何修改mysql默认端口_mysql端口配置方法

2次阅读

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

如何修改mysql默认端口_mysql端口配置方法

MySQL 默认端口是 3306,修改它主要是为了安全加固或避免端口冲突。操作核心在于修改配置文件并重启服务,不同系统路径略有差异,但逻辑一致。

找到并编辑 MySQL 配置文件

MySQL 读取的主配置文件通常是 my.cnflinux/macos)或 my.iniwindows),位置可能在:

  • /etc/my.cnf 或 /etc/mysql/my.cnf(Linux 系统级)
  • /usr/etc/my.cnf(部分 macOS 或源码安装)
  • MySQL 安装目录下的 my.ini(Windows,如 C:Program FilesMySQLMySQL Server 8.0my.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 mysqldsudo 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 防火墙)。

text=ZqhQzanResources