解析DataWorks数据集成中测试连通性失败问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
全局流量管理 GTM,标准版 1个月
简介: 大家好,这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多,本文按照多个因素逐步排查,最终解决问题,希望大家以后再遇到此类问题,请参考此文,相信能够顺利解决您的问题。

一、问题现象

此案例中,DataWorks项目位于华东2,RDS Mysql数据源位于华东1(VPC网络),使用DataWorks进行数据同步之前,首先需要建立数据源,但在建立数据源RDS Mysql的配置页面,“测试连通性”失败,即数据源并没有连通。

image

二、问题处理过程

(1)首先,应该判断该数据源是否支持“测试连通性”
遇到测试连通性问题,首先应该判断该数据源是否支持“测试连通性”,请大家参考《各数据源测试连通性支持情况》。请注意,通过经典网络或VPC网络的跨区域访问,是不保证连通性的,但RDS产品除外,也就是说本案例中的数据源是支持测试连通性的。(本案例中项目和数据源的基本情况,已经在开篇位置介绍了)。

(2)数据源是否配置了完整的白名单
接下来,我们看下是否在Mysql数据库配置了白名单。关于白名单,请参考《数据集成添加白名单》。该文档详细介绍了每个region对应的白名单内容(请注意添加您的项目所在region的白名单,而非您的数据源所在region的白名单)。经过核实,这个RDS Mysql数据源的白名单如下:
image
这正是项目所在region华东2的白名单,所以白名单错误或不完整的原因也排除了。而且开篇第一张图报错中出现的100.104.205.10这个ip也在上述白名单中。

(3)数据源配置页面的信息是否正确
接下来需要核实该数据源配置页面的信息是否正确了。
经过核实,RDS实例ID、RDS实例购买者ID、数据库名、用户名、密码,均没有任何问题。而且,用此处填写的数据库名、用户名、密码可以成功登陆Mysql数据库。如下图:

image

说明基本信息填写正确。

(4)通过公网连接,“测试连通性”是否能成功
上述数据源配置页面,在“数据源类型”选择的是“阿里云数据库(RDS)”,即通过内网连接。接下来尝试下在“数据源类型”选择“有公网IP”,即尝试下通过公网连接,“测试连通性”是否能成功,但测试结果依然失败,并且报错依然是“Access denied”,并且121.43.110.160这个ip也在配置的白名单中。如下图:

image

(5)核查数据库账号的权限
既然上述配置、白名单等都没问题,那接下来看下该数据库账号(这里假设是zhangsan)的权限问题。
DataWorks的数据集成功能,底层是通过开源工具DataX来进行同步的,DataX是通过select操作去数据源中读取数据的,下图是一个同步任务的日志,从日志中可以看到,同步任务是通过执行select语句去读取数据的,如下图所示:
image

也就是说,用户必须能够登录数据库,并有select权限,才能进行数据同步。那我们首先看下用户’zhangsan’的权限和属性。
登录Mysql数据库后,执行:

show grants for zhangsan;
//查询账号zhangsan的权限

select user, host from mysql.user where user = 'zhangsan';
//查询mysql的user表中,用户为'zhangsan'的账号和允许登录的ip

select * from information_schema.processlist where user = 'zhangsan';
//查看user等于'zhangsan'的连接情况。

执行结果如下:

image

经过上图分析,该用户'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数据集成功能,遇到数据源测试连通性失败的时候,可以依照上述排查思路,一步步排查,并请注意数据源中配置账号的权限问题。

目录
相关文章
DataWorks产品使用合集之选择独享调度,数据集成里可以使用,但是数据地图里面测试无法通过,是什么原因导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
79 0
DataWorks产品使用合集之选择独享调度,数据集成里可以使用,但是数据地图里面测试无法通过,是什么原因导致的
DataWorks产品使用合集之在进行测试数据集成时,目标库的数据是源库数据的3倍量,是什么导致的
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks产品使用合集之在进行测试数据集成时,目标库的数据是源库数据的3倍量,是什么导致的
DataWorks操作报错合集之数据集成里面的数据调度独享资源组测试通过了,但是数据地图里无法通过,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
专有云配置vertica数据源,测试连通性已连通,但是在配置数据集成时,连接报错,报vertica[vjdbc]100176错误,连接vertica数据库错误
专有云配置vertica数据源,测试连通性已连通,但是在配置数据集成时,连接报错,报vertica[vjdbc]100176错误,连接vertica数据库错误
141 1
解析DataWorks数据集成中测试连通性失败问题
大家好,这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多,本文按照多个因素逐步排查,最终解决问题,希望大家以后再遇到此类问题,请参考此文,相信能够顺利解决您的问题。
4953 0
Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
Flink CDC 在阿里云 DataWorks 数据集成入湖场景的应用实践
DataWorks数据集成同步至Hologres能力介绍
本次分享的主题是DataWorks数据集成同步至Hologres能力,由计算平台的产品经理喆别(王喆)分享。介绍DataWorks将数据集成并同步到Hologres的能力。DataWorks数据集成是一款低成本、高效率、全场景覆盖的产品。当我们面向数据库级别,向Hologres进行同步时,能够实现简单且快速的同步设置。目前仅需配置一个任务,就能迅速地将一个数据库实例内的所有库表一并传输到Hologres中。
78 12
DataWorks产品使用合集之数据集成并发数不支持批量修改,该怎么办
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
DataWorks不是Excel,它是一个数据集成和数据管理平台
【10月更文挑战第10天】随着大数据技术的发展,企业对数据处理的需求日益增长。阿里云推出的DataWorks是一款强大的数据集成和管理平台,提供从数据采集、清洗、加工到应用的一站式解决方案。本文通过电商平台案例,详细介绍了DataWorks的核心功能和优势,展示了如何高效处理大规模数据,帮助企业挖掘数据价值。
211 1