vpc对等连接默认不通mysql:需手动配置路由表(双向添加目标网段)、安全组(双向放行3306端口)、mysql监听地址(自建库设bind-address=0.0.0.0,rds加对端网段白名单),跨账号还需accepter侧授权路由写入权限。

能通,但默认不通——VPC对等连接本身不自动放行MySQL流量,必须手动配路由、安全组和数据库监听地址。
对等连接创建后为什么ping通但mysql连不上?
这是最常踩的坑:对等连接只打通网络层(L3),不处理四层协议放行或数据库绑定逻辑。
-
ping成功说明ICMP可达,VPC间基础路由已生效 -
mysql -h 10.160.1.100 -P 3306 -u root -p失败,大概率卡在三处:目标MySQL未监听0.0.0.0:3306(只绑127.0.0.1)、源端ECS安全组没放行3306出方向、目标RDS/ECS安全组没放行3306入方向 -
华为云RDS默认只允许同VPC内访问,即使开了对等连接,也需在RDS控制台显式添加对端VPC网段到白名单(如
192.168.0.0/16)
路由表里必须加这两条route规则
华为云VPC路由表不会自动学习对等连接目标网段,必须人工添加。
- 在VPC-A路由表中添加:目标网段
10.160.0.0/16→ 下一跳类型VPC对等连接→ 选择已创建的peer-A-B - 在VPC-B路由表中添加:目标网段
192.168.0.0/16→ 下一跳类型VPC对等连接→ 同样选peer-A-B - 注意CIDR不能重叠,否则路由冲突;若用
/32子网(如文档里写的10.160.0.0/32),实际无法通信,必须是有效网段(如/16或/24)
安全组配置要双向放开3306端口
华为云安全组默认拒绝所有入向,且不继承VPC层级策略。
- 源ECS所在安全组:入方向放行
3306(来源IP填对端VPC网段,如10.160.0.0/16) - 目标MySQL所在安全组(ECS或RDS):入方向放行
3306(来源IP填源VPC网段,如192.168.0.0/16) - 如果MySQL跑在自建ECS上,确认
bind-address在/etc/my.cnf里设为0.0.0.0,而非127.0.0.1 - RDS实例无需改bind,但必须在“数据库管理 > 白名单”里添加对端VPC网段
跨账号场景下accepter侧权限容易漏掉
如果是不同账号间的VPC对等连接,接受方(accepter)除了创建连接,还必须主动授权本端VPC路由表可写——否则路由添加操作会失败。
- 在accepter账号的VPC控制台,进入“对等连接详情页”,点击“管理授权”
- 勾选“允许请求方在本端VPC路由表中添加路由”
- 该开关关闭时,
add route操作会提示Forbidden: Permission denied
真正卡住人的从来不是对等连接创建按钮,而是路由表里少添一行、安全组里少开一个端口、RDS白名单里少输一个网段——这些地方没有报错提示,只有连接超时静默失败。











