当前位置:首页 > 问答 > 正文

数据库配置 端口设置 如何修改MySQL默认端口及更改mysql服务监听端口的方法

🔧 数据库端口改造指南:给MySQL换个"门牌号"的正确姿势


💼 场景故事:当3306端口成为众矢之的

"小王啊,咱们数据库又被扫描了!" 安全组的同事第N次敲开你的工位,作为运维老手的你看着熟悉的3306端口告警记录,决定是时候给MySQL换个"门牌号"了——就像疫情期间快递员总找不到你家单元门,换个显眼的门牌就能避开骚扰电话!


🛠️ 实操四部曲(Linux/Windows通用)

第一步:找到MySQL的"身份证"

# Linux/Mac找my.cnf的藏身之处  
sudo find / -name "my.cnf"  
# 常见位置可能是  
/etc/mysql/my.cnf  
/etc/my.cnf  
/usr/local/mysql/etc/my.cnf  
# Windows用户看这里  
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini  

🔍 小贴士:用mysql --help | grep "my.cnf"能显示加载顺序

数据库配置 端口设置 如何修改MySQL默认端口及更改mysql服务监听端口的方法


第二步:修改配置(记得备份!)

用vim/nano/记事本打开配置文件,找到[mysqld]区块:

[mysqld]  
port = 3306  # 把这行改成新端口,比如13306  
# 新增这行防止本地连接出问题  
bind-address = 127.0.0.1  

💡 经验值:端口建议选1024-65535,避开22/80/443等常见端口

数据库配置 端口设置 如何修改MySQL默认端口及更改mysql服务监听端口的方法


第三步:防火墙开绿灯

# Linux防火墙操作示例  
sudo ufw allow 13306/tcp  
sudo firewall-cmd --add-port=13306/tcp --permanent  
sudo firewall-cmd --reload  
# Windows在高级安全防火墙里添加入站规则  

⚠️ 注意:云服务器还要在安全组规则里放行新端口!


第四步:重启服务验证

# Linux优雅重启  
sudo systemctl restart mysql  
# Windows服务管理器重启  
net stop MySQL80 && net start MySQL80  
# 验证新端口是否生效  
mysql -u root -p -P 13306  # 连接时指定新端口  

🎯 测试技巧:用telnet 127.0.0.1 13306测试端口通不通

数据库配置 端口设置 如何修改MySQL默认端口及更改mysql服务监听端口的方法


🌟 避坑指南

  1. 连接报错? 检查配置文件的bind-address是否允许远程
  2. 服务起不来?journalctl -xe或错误日志查原因
  3. Windows特别提示:修改my.ini需要管理员权限
  4. Docker用户:记得同步修改容器映射端口

📅 版本备忘录(2025.07更新)

  • MySQL 8.0+ 默认启用SSL,改端口后建议检查加密配置
  • 最新社区版已支持SET GLOBAL port=13306动态修改(需配合配置文件持久化)

发表评论