付帅 2018-11-02 2787浏览量
DataWorks添加数据源典型问题可分为连通性问题、参数问题、权限问题三类。
连通性问题主要体现为测试连通性失败。
测试连接失败,测试数据源联通性失败,连接数据库失败,数据库连接串…异常消息:Communications link failure. The last packet sent successfully to the server was 0 milliseconds ago.The dirver has not received any packets from the server.
解决方案:出现上述报错通常都是网络连通性问题导致。可检查您的网络是否可达,以及防火墙对这个IP/端口是否有相关限制,安全组是否已配置对IP/端口放通。
error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[..] error with code: PROJECT_DATASOURCE_CONN_ERROR.
问题解法:处理此类问题时首先需要确定您的DataWorks项目处于哪个region。使用阿里云MongoDB,需要确定网络类型是否为VPC,VPC环境下MongoDB不支持数据连通性测试(使用方案一可规避此问题)。
VPC环境下阿里云MongoDB数据同步有两种方案:
host:port
填写正确,数据库名和用户名填写正确。
添加MongoDB数据源时,使用的用户名必须是用户需要同步的这张表所在的数据库创建的用户名,不能用root。
例如需要导入name表,name表在test库,则此处数据库名称填写为test。
用户名为指定数据库中创建的用户名,不要使用root。例如之前指定的是test库,则用户名需使用test数据库中创建的账户。
问题解法:Redis添加数据源时如果没有公网IP,需要保证数据源和DataWorks项目区域一致,通过新增调度资源完成数据源的打通。
error message: Timed out after 5000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}
。
问题解法:VPC网络的MongoDB数据源和Dataworks的默认资源组在内网上是不通的,所以无法直接进行同步任务,需要通过公网或者自定义资源组的方式进行连通。
问题解法:Docker中安装的MySQL直接用服务器的公网IP组成的JDBC地址是无法连接的,连通性测试无法通过。您需要将MySQl的端口映射到宿主机上,使用映射出的端口链接。
error message: java.net.SocketTimeoutException: connect timed out.
问题解法:目前DataWorks不支持Redis通过内网添加数据源。建议您为Redis数据源开通公网访问能力。数据源配置时,选择“有公网 IP”,通过公网连接。
测试连接失败,测试数据源连通性失败,连接数据库失败…异常消息:No suitable direver found for...
。问题解法:出现上述情况可能是JDBC URL格式填写错误导致,JDBC URL在填写时,请不要在URL中添加空格或任何特殊字符。正确格式为:jdbc:mysql://ServerIP:Port/Database
。
问题解法:添加MongoDB数据源时,使用的用户名必须是用户需要同步的这张表所在的数据库创建的用户名,不能用root。例如需要导入name表,name表在test库,则此处数据库名称填写为test。用户名为指定数据库中创建的用户名,不要使用root。例如之前指定的是test库,则用户名需使用test数据库中创建的账户。
问题解法:需要检查填写的UID是否为是子账号的UID,这里要填写RDS所属主账号的UID才可以成功添加数据源。
问题解法:ODPS默认数据源无需添加,默认为odps_fisrt。
问题解法:支持,添加时选择关系型数据库PostgreSQL即可。
问题解法:需要严格按照格式来,目前不支持域名映射的方式。
user not exist ip white list reference
。
问题解法:出现这种情况通常是由于用户名输入错误。您可以参考创建账号和数据库检查自己输入的用户名是否正确。
连接数据库失败, 数据库连接串:${jdbcUrl}, 用户名:XXXXXX, 异常消息:You don't have privilege for connecting database 'dw', userId=RAM$XXX, schemaId=XX
。
问题解法:首先,您需要检查在数据源中填写的子账号是否有ADS的访问权限。分析型数据库用户基于阿里云帐号进行认证,用户建立的数据库属于该用户,用户也可以授权给其他用户访问其数据库下的表,所以连接的用户是需要在ADS上进行授权的,具体的说明参见用户账号类型与用户管理。
问题解法:只有项目管理员权限的RAM子账户才可以增删改数据源。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。