問題描述
ECS和RDS執行個體在同一個VPC和地區下,無法通過內網地址串連RDS執行個體(外網地址可以串連),Ping和Telnet命令執行失敗。
問題原因
由於安裝了Docker等服務導致變更了路由表的條目。
解決方案
重要
如果您對執行個體或資料有修改、變更等風險操作,務必注意執行個體的容災、容錯能力,確保資料安全。
如果您對執行個體(包括但不限於ECS、RDS)等進行配置與資料修改,建議提前建立快照或開啟RDS記錄備份等功能。
如果您在阿里雲平台授權或者提交過登入帳號、密碼等安全資訊,建議您及時修改。
登入問題ECS執行個體,執行以下命令,使用Ping命令測試RDS執行個體內網地址。
ping rm-XXX-mysql.rds.aliyuncs.com
系統顯示類似如下,即使Ping不通也可以擷取RDS執行個體內網IP。
執行以下命令,查看ECS執行個體的路由表資訊。
route -n
系統顯示類似如下,確認存在因為Docker等服務添加的路由條目(您也可以和正常的ECS執行個體路由表對比確認)。
執行以下命令,添加路由條目。
route add -net [$Network] gw [$Gateway] dev [$Network_Card]
說明您需確認在實際環境下添加該路由條目不影響當前業務。
[$Network]
為RDS執行個體所在的網段。[$Gateway]
為網關地址,您可以使用ECS執行個體的內網地址。[$Network_Card]
為ECS執行個體內網IP所在網卡名稱,一般為eth0。
執行以下命令,確認可以正常Ping通。
ping rm-XXX-mysql.rds.aliyuncs.com
適用於
雲資料庫RDS
Elastic Compute Service