DRS无法连接ECS自建的MySQL数据库DRS.KE0004

举报
云技术搬运工 发表于 2021/05/14 15:19:41 2021/05/14
【摘要】 业务需要将ECS上自建的MySQL数据库迁移到RDS for MySQL,使用DRS进行迁移任务,在测试源端数据库连接时失败,提示:DRS.KE0004:数据库不可用。 业务使用navicat客户端工具,用同样的账号、密码是可以正常连接数据库的。

问题现象

业务需要将ECS上自建的MySQL数据库迁移到RDS for MySQL,使用DRS进行迁移任务,在测试源端数据库连接时失败,提示:DRS.KE0004:数据库不可用。

业务使用navicat客户端工具,用同样的账号、密码是可以正常连接数据库的。

1.png

排查思路

        DRS需要分别连接源和目的数据库,可以将DRS视为一个云上的数据库客户端。

        云上数据库连接不通数据库,常见的原因就是数据库的安全组未放通客户端的IP访问数据库服务端口(默认是3306端口),如果连接正常到了MySQL服务端了还是无法连接,则需要看服务端的日志来协助定位。

问题排查

1、排查ECS自建MySQL的安全组策略

2.png


 发现已经将所有的端口都放通了。如何判断放开;或者如果没有放开,怎么配置放开的方法请参考 https://support.huaweicloud.cn/qs-rds/rds_02_0004.html

 

2、登录源MySQL所在的ECS,通过tcpdump抓包或message日志,发现已经收到了DRS3306端口的请求,但是mysqld_drop掉了这些请求包,在 /var/log/messages 日志中发现有mysqld_drop的字眼,遂查看iptables规则。下图为message日志关联内容:

3.png

3ECSiptables情况:

4.png

发现多出来 IN_HIDS_MYSQLD_BIP_DROP  IN_HIDS_MYSQLD_DENY_DROP 2条链,通过规则可以看出来自测试服的ip访问3306被丢弃+记录日志。

 

4、查找所有规则,并删除异常多余的规则

iptables -L IN_HIDS_MYSQLD_DENY_DROP --line-numbers

iptables -D IN_HIDS_MYSQLD_DENY_DROP 2

iptables -D IN_HIDS_MYSQLD_DENY_DROP 1

 

5、此时问题解决

5.png

问题根因

华为ECS上有自带hostguardHSS企业主机安全服务),若30秒内,mysql账户暴力破解次数达到5次及以上,或者3600秒内,账户暴力破解次数达到15次及以上,hostguard就会拦截该源IP

6.png


问题解决

查找所有规则,并删除异常多余的规则

iptables -L IN_HIDS_MYSQLD_DENY_DROP --line-numbers

iptables -D IN_HIDS_MYSQLD_DENY_DROP 2

iptables -D IN_HIDS_MYSQLD_DENY_DROP 1

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。