概述
配置数据迁移任务时,可以进行数据库连接测试,很多时候会遇到测试连接失败。本文根据不同的实例类型介绍可能失败的原因及对应的解决方案。
详细信息
当连接性预检查失败时,可能是由于如下原因:

诊断内容 | 可能原因 | 解决方法 |
JDBC |
|
|
Ping |
|
|
Telnet |
|
|
当DTS测试连接失败时,你需要先通过数据库客户端连接数据库,验证数据库的存活性及数据库连接信息的正确性。如果数据库正常存活且连接信息没有问题,那么通过下面的方法解决问题:
有公网IP的自建数据库
根据以下不同的测试结果,进行相应的处理。
测试结果一
问题现象
测试连接时,使用ping命令测试网络不通,使用telnet命令测试端口不通,且JDBC不通。
问题原因
可能对数据库进行了访问来源限制,例如,在数据库上进行了iptables限制。
解决方法
请登录数据库所在服务器,通过执行
iptables -L命令,确认是否设置了iptables。如果设置了iptables,那么请根据迁移任务的目标实例所在区域,选择对应区域的DTS IP地址段,在iptables中放开DTS的访问限制。若您所在的网络环境有硬件防火墙,请确认硬件防火墙没有进行限制。
若以上检查都没有问题,请检查下您的路由是否正常。
测试结果二
问题现象
测试连接时,使用ping命令测试网络正常,使用telnet命令测试端口不通,且JDBC不通。
问题原因
可能对数据库的端口进行了访问来源限制,例如在数据库端口上进行了iptables或ACL限制。
解决方法
请根据迁移任务的目标实例所在区域,选择对应区域的DTS IP地址段,在iptables或ACL中放开DTS访问数据库的限制。
若您所在的网络环境有硬件防火墙,请确认硬件防火墙没有进行限制。
若以上检查都没有问题,请检查下您的路由是否正常。
测试结果三
问题现象
测试连接时,使用ping命令测试网络正常,使用telnet命令测试端口正常,但JDBC不通。
问题原因
可能是数据库账号密码填写有误,或者是数据库的IP、Port连接地址填写错误。
可能是数据库账号授权限制了连接地址。
ECS自建数据库没有自动添加11开头网段的路由(11开头网段的gateway需要与10开头网段的gateway相同)。
解决方法
请确认并修正数据库的连接信息。
请放开所有的连接地址。
使用
route -n命令查看gateway信息,使用sudo route add -net 11.0.0.0/8 gw <10开头网段的gateway>添加路由。
测试结果四
问题现象
测试连接时,使用ping命令测试网络失败,使用telnet命令测试端口正常,但JDBC不通。
问题原因
可能是您的禁止ping ECS实例,且数据库账号密码填写有误。
解决方法
修改ECS实例禁止ping的配置,例如iptables的
/proc/sys/net/ipv4/icmp_echo_ignore_all的参数值(值为1,说明禁止ping ECS实例)。参见测试结果三,确认密码或授权的连接地址没有问题。
ECS上的自建数据库
根据以下不同的测试结果,进行相应的处理。
测试结果一
问题现象
测试连接时,使用ping命令测试网络不通,使用telnet命令测试端口不通,且JDBC不通。
问题原因
DTS无法访问ECS实例。
解决方法
可能在ECS上设置了iptables,限制了数据库的访问来源。登录ECS实例,执行如下命令,确认是否设置了iptables。如果返回iptables限制条目,那么请根据迁移任务的目标实例所在区域,选择对应区域的DTS IP地址段,在iptables中放开DTS访问限制。
iptables -L登录ECS控制台,查看安全组是否限制了DTS的IP段。
测试结果二
问题现象
测试连接时,使用ping命令测试网络正常,使用telnet命令测试端口不通,且JDBC不通。
问题原因
可能ECS设置了安全组,限制了数据库端口的访问来源。
解决方法
请根据迁移任务的目标实例所在区域,选择对应区域的DTS IP地址段,登录ECS控制台,查看安全组是否限制了DTS的IP段。
测试结果三
问题现象
测试连接时,使用ping命令测试网络正常,使用telnet命令测试端口正常,但JDBC不通。
问题原因
可能是数据库账号密码填写有误,或者是数据库的IP、Port连接地址填写错误。
可能是数据库账号授权限制了连接地址。
解决方法
请确认并修正数据库的连接信息。
请放开所有的连接地址。
测试结果四
问题现象
测试连接时,使用ping命令测试网络失败,使用telnet命令测试端口正常,但JDBC不通。
问题原因
可能是您的禁止ping ECS实例,且数据库账号密码填写有误。
解决方法
修改ECS实例禁止ping的配置,例如iptables的
/proc/sys/net/ipv4/icmp_echo_ignore_all的参数值(值为1,说明禁止ping ECS实例)。参见测试结果三,确认密码或授权的连接地址没有问题。
通过专线接入的本地DB
专线接入,需要进行本地IDC接入设备上的静态路由、云上边界路由器上的路由表的配置,请参考专线接入使用手册,确认路由配置是否正确。
云实例
可能是数据库账号密码填写有误,请确认并修正。