最牛论坛网站,跨境电商怎么注册开店,中国建设银行网站不好用,建设网站需要先构建好模型摘要#xff1a; 大家好#xff0c;这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多#xff0c;本文按照多个因素逐步排查#xff0c;最终解决问题#xff0c;希望大家以后再遇到此类问题#xff0c;请参考此文 大家好这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多本文按照多个因素逐步排查最终解决问题希望大家以后再遇到此类问题请参考此文相信能够顺利解决您的问题。
原文链接http://click.aliyun.com/m/43552/
一、问题现象
此案例中DataWorks项目位于华东2RDS Mysql数据源位于华东1VPC网络使用DataWorks进行数据同步之前首先需要建立数据源但在建立数据源RDS Mysql的配置页面“测试连通性”失败即数据源并没有连通。二、问题处理过程
1首先应该判断该数据源是否支持“测试连通性”
遇到测试连通性问题首先应该判断该数据源是否支持“测试连通性”请大家参考《各数据源测试连通性支持情况》。请注意通过经典网络或VPC网络的跨区域访问是不保证连通性的但RDS产品除外也就是说本案例中的数据源是支持测试连通性的。本案例中项目和数据源的基本情况已经在开篇位置介绍了。
2数据源是否配置了完整的白名单
接下来我们看下是否在Mysql数据库配置了白名单。关于白名单请参考《数据集成添加白名单》。该文档详细介绍了每个region对应的白名单内容请注意添加您的项目所在region的白名单而非您的数据源所在region的白名单。经过核实这个RDS Mysql数据源的白名单如下
这正是项目所在region华东2的白名单所以白名单错误或不完整的原因也排除了。而且开篇第一张图报错中出现的100.104.205.10这个ip也在上述白名单中。
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数据库后执行
//查询账号zhangsan的权限select user, host from mysql.user where user zhangsan;
//查询mysql的user表中用户为zhangsan的账号和允许登录的ipselect * from information_schema.processlist where user zhangsan;
//查看user等于zhangsan的连接情况。
执行结果如下经过上图分析该用户’zhangsan’没有show grants for zhangsan; 的权限同样也没有权限查询mysql数据库user表中用户为’zhangsan’的账号和允许登录的ip。而且当前用户’zhangsan’的连接情况是正常的。 通过有root权限的相关人员查询得到该用户’zhangsan’绑定了登录ip即只有在指定ip下才能用此账号登录即
Host: 116.228.89.206 User: zhangsan
也就是说用户zhangsan是无法通过用于同步的阿里云服务器登录其数据库的测试连通性当然就失败了由此我们终于找到了测试连通性失败的原因 接下来用root账户新建用户lisi然后给lisi赋select权限命令如下
grant select on 数据库.* to lisi’%’ identified by ‘user_password’; // 给lisi赋select权限并允许在任意ip登录
flush privileges; //刷新MySQL的系统权限相关表
由此再进行RDS Mysql数据源的测试连通性就成功了。
三、结论建议
当使用DataWorks数据集成功能遇到数据源测试连通性失败的时候可以依照上述排查思路一步步排查并请注意数据源中配置账号的权限问题。