如何处理DataWorks数据集成中测试连通性失败的问题?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
(1)首先,应该判断该数据源是否支持“测试连通性”
遇到测试连通性问题,首先应该判断该数据源是否支持“测试连通性”,请注意,通过经典网络或VPC网络的跨区域访问,是不保证连通性的,但RDS产品除外,也就是说本案例中的数据源是支持测试连通性的。
(2)数据源是否配置了完整的白名单
接下来,我们看下是否在Mysql数据库配置了白名单。请注意添加您的项目所在region的白名单,而非您的数据源所在region的白名单)。
(3)数据源配置页面的信息是否正确
接下来需要核实该数据源配置页面的信息是否正确了。 经过核实,RDS实例ID、RDS实例购买者ID、数据库名、用户名、密码,均没有任何问题。而且,用此处填写的数据库名、用户名、密码可以成功登陆Mysql数据库
(4)通过公网连接,“测试连通性”是否能成功
上述数据源配置页面,在“数据源类型”选择的是“阿里云数据库(RDS)”,即通过内网连接。接下来尝试下在“数据源类型”选择“有公网IP”,即尝试下通过公网连接,“测试连通性”是否能成功,但测试结果依然失败,并且报错依然是“Access denied”,并且121.43.110.160这个ip也在配置的白名单中。
(5)核查数据库账号的权限
既然上述配置、白名单等都没问题,那接下来看下该数据库账号(这里假设是zhangsan)的权限问题。 DataWorks的数据集成功能,底层是通过开源工具DataX来进行同步的,DataX是通过select操作去数据源中读取数据的,下图是一个同步任务的日志,从日志中可以看到,同步任务是通过执行select语句去读取数据的。
也就是说,用户必须能够登录数据库,并有select权限,才能进行数据同步。那我们首先看下用户’zhangsan’的权限和属性。 登录Mysql数据库后,执行: