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

简介: 大家好,这里和大家分享的是DataWorks数据集成中测试连通性失败的排查思路。与测试连通性成功与否的相关因素有很多,本文按照多个因素逐步排查,最终解决问题,希望大家以后再遇到此类问题,请参考此文,相信能够顺利解决您的问题。

一、问题现象

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

1

二、问题处理过程

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

(2)数据源是否配置了完整的白名单
接下来,我们看下是否在Mysql数据库配置了白名单。关于白名单,请参考[《数据集成添加白名单》]。该文档详细介绍了每个region对应的白名单内容(请注意添加您的项目所在region的白名单,而非您的数据源所在region的白名单)。经过核实,这个RDS Mysql数据源的白名单如下:
2

这正是项目所在region华东2的白名单,所以白名单错误或不完整的原因也排除了。而且开篇第一张图报错中出现的100.104.205.10这个ip也在上述白名单中。

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

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

(5)核查数据库账号的权限
既然上述配置、白名单等都没问题,那接下来看下该数据库账号(这里假设是zhangsan)的权限问题。
DataWorks的数据集成功能,底层是通过开源工具DataX来进行同步的,DataX是通过select操作去数据源中读取数据的,下图是一个同步任务的日志,从日志中可以看到,同步任务是通过执行select语句去读取数据的,如下图所示:
5
也就是说,用户必须能够登录数据库,并有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'的连接情况。
```
执行结果如下:

6
经过上图分析,该用户'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数据集成中测试连通性失败问题》

欢迎加入“数加·MaxCompute购买咨询”钉钉群(群号:11782920)进行咨询。

66

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
8月前
|
XML jenkins 机器人
JMeter+Ant+Jenkins实现接口自动化测试持续集成
本文介绍了如何使用Ant生成JMeter接口测试报告,并集成到Jenkins中实现自动化测试。内容涵盖Ant与JMeter环境配置、build.xml文件设置、测试执行及报告生成,同时包括Jenkins插件安装、项目配置和钉钉消息通知的集成,帮助实现持续测试与结果可视化。
1004 0
|
6月前
|
Java 测试技术 API
自动化测试工具集成及实践
自动化测试用例的覆盖度及关键点最佳实践、自动化测试工具、集成方法、自动化脚本编写等(兼容多语言(Java、Python、Go、C++、C#等)、多框架(Spring、React、Vue等))
370 6
|
8月前
|
Web App开发 开发框架 .NET
Playwright 自动化测试系列(6)| 第三阶段:测试框架集成​指南:参数化测试 + 多浏览器并行执行
Pytest 与 Playwright 集成可提升自动化测试效率,支持参数化测试、多浏览器并行执行及统一报告生成。通过数据驱动、Fixture 管理和并行优化,显著增强测试覆盖率与执行速度,适用于复杂 Web 应用测试场景。
|
敏捷开发 测试技术 持续交付
探索软件测试中的自动化与持续集成
在快速迭代的软件开发环境中,自动化测试和持续集成(CI)已成为确保产品质量和加速交付的关键策略。本文将深入探讨自动化测试的基本原理、实施步骤以及它如何与持续集成流程相结合,以提高软件开发的效率和可靠性。我们将通过实际案例分析,展示自动化测试和CI的最佳实践,以及它们如何帮助企业实现更快的市场响应时间和更高的客户满意度。
247 16
|
存储 人工智能 测试技术
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
141879 29
小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
9月前
|
人工智能 Java 测试技术
SpringBoot 测试实践:单元测试与集成测试
在 Spring Boot 测试中,@MockBean 用于创建完全模拟的 Bean,替代真实对象行为;而 @SpyBean 则用于部分模拟,保留未指定方法的真实实现。两者结合 Mockito 可灵活控制依赖行为,提升测试覆盖率。合理使用 @ContextConfiguration 和避免滥用 @SpringBootTest 可优化测试上下文加载速度,提高测试效率。
447 5
|
8月前
|
测试技术 API C++
Playwright 自动化测试系列(7)| 第三阶段:测试框架集成​​Page Object 模式
本课程详解Playwright测试框架中的Page Object模式,通过电商登录-下单实战演示PO架构设计与高级技巧,结合Pytest实现多用户测试。重点解析PO模式提升代码复用性、降低维护成本的核心价值,并提供常见问题解决方案,助力构建高可维护性的自动化测试体系。
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成
在现代软件开发过程中,自动化测试和持续集成已成为不可或缺的组成部分。本文将深入探讨自动化测试和持续集成的重要性、优势以及如何有效实施它们以提升软件质量和开发效率。通过具体案例分析,我们将展示这些技术如何在实际项目中发挥作用,并讨论其面临的挑战及应对策略。
352 60

热门文章

最新文章