云服务器连不上数据库?4步排查法+安全组配置实战指南

限时 腾讯云新春特惠 — 轻量2核2G4M 576元99元/年 立即领取 →

你刚买了云服务器准备部署应用,结果数据库死活连不上?别急,这可能是新手最容易踩的“网络坑”。我们整理了一套可实操、可复现的排查流程,帮你快速定位是安全组、VPC、防火墙还是权限问题。

第一步:确认是不是安全组没开数据库端口(90%的问题出在这)

云服务器默认不会开放任何入站端口,包括 MySQL 的 3306、PostgreSQL 的 5432 或 Redis 的 6379。即使你数据库配置完全正确,只要安全组没放行,连接请求根本到不了服务进程。

  • 登录云控制台,找到你服务器绑定的安全组(Security Group)
  • 进入“入站规则”或“入方向规则”,检查是否允许目标端口(如 3306)
  • 建议先临时添加一条规则:源 IP 为 0.0.0.0/0,协议 TCP,端口 3306(仅用于测试,上线后应限制为具体 IP)

注意:有些平台还要求配置出站规则。如果你的数据库在另一台云主机上,服务器需要能“主动向外连接”,出站规则也得放行目标 IP 和端口。

爆款 腾讯云服务器 · 热销配置
限时优惠 | 个人专享
1.7折
轻量 2核2G4M
50GB SSD | 300GB流量
576元/年
99元/年
2.2折
轻量 2核4G6M
70GB SSD | 600GB流量
900元/年
199元/年
2.5折
轻量 4核8G10M
120GB SSD | 1500GB流量
2520元/年
630元/年
海外
海外 2核2G30M
东京/新加坡 | 1TB流量
576元/年
99元/年
查看全部优惠配置 →

第二步:检查操作系统本地防火墙是否拦截

安全组只是云平台的第一道防线,服务器操作系统自身的防火墙(如 firewalld、ufw、iptables)也可能拦截流量。

  1. 查看端口是否开放(以 CentOS 为例):

    firewall-cmd --query-port=3306/tcp

  2. 若返回 no,执行永久开放命令:

    firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload

    买1年送3个月 腾讯云服务器 · 超值年付
    限时活动 | 数量有限
    轻量 2核2G4M
    个人专享 | 免费续3个月
    576元/年
    99元/年
    轻量 2核4G5M
    个人专享 | 免费续3个月
    780元/年
    188元/年
    轻量 4核8G12M
    个人专享 | 免费续3个月
    2760元/年
    880元/年
    CVM 2核2G S5
    个企同享 | 免费续3个月
    846元/年
    245元/年
    CVM 2核4G S5
    个企同享 | 免费续3个月
    2196元/年
    637元/年
    CVM 4核8G S5
    个企同享 | 免费续3个月
    4776元/年
    1256元/年
    立即领取买1年送3个月优惠 →

  3. Ubuntu 用户可用 ufw:

    sudo ufw allow 3306/tcp

  4. 临时测试可清空 iptables(仅限测试环境):

    sudo iptables -F && sudo iptables -X && sudo iptables -P INPUT ACCEPT

⚠️ 警告:直接关闭防火墙会降低系统安全性,生产环境务必通过规则放行,而非全局关闭。

长期特惠 腾讯云服务器 · 3年/5年机特惠
低至2折 | 省钱首选
2折
轻量 2核2G4M
个人专享 | 约9.8元/月
1728元/3年
353元/3年
2折
轻量 2核4G6M
个人专享 | 约14.7元/月
2700元/3年
528元/3年
5年
CVM SA2 AMD
高性价比 | 约17.4元/月
3400元/5年
1044元/5年
5年
CVM S5 Intel
稳定计算 | 约21.2元/月
4230元/5年
1269元/5年
查看长期特惠详情 →

第三步:验证网络连通性与 VPC 配置

云服务器和数据库必须在同一网络环境下才能内网互通。常见错误包括:

  • 服务器在 VPC 网络,数据库在基础网络(经典网络)
  • 两者虽在同一地域,但属于不同 VPC
  • 跨账号部署,未建立 VPC 对等连接或云联网

排查方法:

  1. 使用 telnet 测试端口连通性:

    telnet 10.x.x.34 3306

    GPU 腾讯云 · GPU服务器 & 爆品专区
    AI算力 | 限量抢购
    GPU GN6S
    NVIDIA P4 | 4核20G
    501元/7天
    175元/7天
    GPU GN7
    NVIDIA T4 | 8核32G
    557元/7天
    239元/7天
    GPU GN8
    NVIDIA P40 | 6核56G
    1062元/7天
    456元/7天
    香港 2核 Linux
    独立IP | 跨境电商
    38元/月
    32.3元/月
    查看GPU服务器详情 →

    若提示 “Connected”,说明网络层通;若超时或拒绝,则网络不通。

  2. 若 telnet 失败,先用 ping 测试 IP 层连通性(注意:部分云数据库禁 ping,ping 不通不代表端口不通)
  3. 确认服务器与数据库是否在同一 VPC ID 下。若不在,需迁移实例或建立 VPC 互联

第四步:排查认证、配置与资源瓶颈

如果网络通了但依然连不上,问题可能出在数据库本身:

  • 用户名/密码错误:检查连接字符串中的凭据是否准确
  • 用户权限不足:数据库用户可能只允许从 localhost 登录,需授权远程访问:

    GRANT ALL PRIVILEGES ON . TO 'your_user'@'%' IDENTIFIED BY 'password';

  • 数据库未监听公网或内网 IP:检查配置文件(如 MySQL 的 my.cnf)中 bind-address 是否为 0.0.0.0 或具体内网 IP
  • 连接数耗尽:高并发下可能达到最大连接数限制,表现为“Too many connections”
  • 服务未启动:执行 systemctl status mysqld 确认服务运行状态

常见云数据库连接错误对照表

错误信息 可能原因 解决方向
Can't connect to MySQL server on 'x.x.x.x' (113) 网络不通 / 安全组未开放 检查 telnet、安全组、VPC
Host 'x.x.x.x' is not allowed to connect to this MySQL server 用户权限未授权远程 IP 执行 GRANT 授权 % 或指定 IP
Connection reset by peer 连接数满 / 服务崩溃 / 防火墙中断 查连接数、服务日志、资源使用率
No route to host 路由不可达 / 跨 VPC 未互通 确认是否同 VPC,或配置云联网

工具推荐:快速诊断连接问题

  • telnet:最基础的端口探测工具(若未安装,可用 nc -vz 10.x.x.34 3306 替代)
  • tcpdump:抓包分析连接是否到达服务器

    sudo tcpdump -i any port 3306

  • netstat / ss:确认数据库是否在监听

    ss -tuln | grep 3306

这些命令组合使用,能帮你快速判断问题是出在网络层、传输层还是应用层。

常见问题 FAQ

问题 解答
安全组开了 3306,为什么还是连不上? 可能操作系统防火墙未放行,或数据库未监听 0.0.0.0,也可能是用户权限未授权远程 IP。
telnet 能通,但应用连不上数据库? 检查应用连接字符串是否正确,数据库用户是否允许从该 IP 登录,以及是否达到最大连接数限制。
云服务器和数据库在不同账号下能内网互通吗? 可以,但需通过云联网(如 VPC Peering 或云企业网)打通两个 VPC,并配置路由和安全组。
如何临时测试数据库连通性? 在服务器上安装 MySQL 客户端,执行 mysql -h 内网IP -u 用户名 -p 直接测试。
数据库连接超时怎么办? 先确认网络延迟(ping),再检查数据库负载(CPU/内存),慢查询或资源不足会导致响应超时。
推荐 腾讯云服务器 · 更多优惠配置
点击查看详情
轻量 2核2G4M
50GB SSD | 300GB流量
99元/年
轻量 2核4G6M
70GB SSD | 600GB流量
199元/年
海外 Linux 2核2G30M
东京/新加坡 | 1TB流量
99元/年
海外 Win 2核2G30M
东京/新加坡 | 1TB流量
99元/年
上云大礼包 1670元
代金券礼包
轻量服务器特惠
跨境电商服务器
查看全部优惠 | 领取专属礼包 →