使用datax同步数据报错信息提示如下:
-
配置的ip/port/database/jdbc错误,无法连接。———这个仔细检查了也没有啥问题:json中配置:jdbc:postgresql://localhost:5432/cnop
-
配置的username/password错误,鉴权失败。请和DBA确认该数据库的连接信息是否正确。——用户名和密码也没问题。
-
具体错误信息为:java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/database。——数据库驱动已更换为42.2.5,同样的驱动在dbeaver上可用,在datax上不可用。
最后发现问题竟然是json中"name": "mysqlreader",
没有改为"name": "postgresreader",
,也就是name要和使用的数据库相对应。程序是读到这个name的值,才去plugin中找对应的文件夹名字,进而读取数据库驱动。所以这里面有两个问题:
- 提示信息信息非常不准确;
- 工具设计者没有考虑到正常使用者的思维逻辑,我们一般连接数据库就是用户名、密码,再就是url信息和驱动。不应该让使用者通过name去找对应的驱动,这不符合逻辑。
{
"job": {
"content": [
{
"reader": {
"name": "mysqlreader",