下载官方代码
使用时发现链接MYSQL8.X 一直报用户名/密码/端口不对的错误 最后实践的解决方案如下
- git clone https://github.com/alibaba/DataX
- 主要解决mysqlreader mysqlwriter的问题 通过修改POM文件的MYSQL依赖版本号
- 假定已安装编译后的DataX
修改
- 进入代码根目录
- vim mysqlreader/pom.xml
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
- 如上修改版本号 保存
- 修改MYSQL8.X Driver
- 我们的问题修改一下第一行的mysql驱动就可以
- mysqlwriter修改同理
- vim plugin-rdbms-util/src/main/java/com/alibaba/datax/plugin/rdbms/util/DataBaseType.java
- 替换为: com.mysql.cj.jdbc.Driver
重编译
- 根目录下执行 mvn -U clean package assembly:assembly -Dmaven.test.skip=true
- 等待
- 编译到最后可能会提示一个JAR因为找不到依赖而编译失败 但是这和我们需要解决的问题无关(可使用官方提供的安装工具安装编译后的程序)
-------------------------错误提示: 忽略---------------------------
[INFO] tsdbwriter 0.0.1-SNAPSHOT .......................... FAILURE [ 0.181 s]
[ERROR] Failed to execute goal on project tsdbwriter: Could not resolve dependencies for project com.alibaba.datax:tsdbwriter:jar:0.0.1-SNAPSHOT: Could not find artifact com.aliyun:hitsdb-client:jar:0.4.0-SNAPSHOT in central (https://maven.aliyun.com/repository/central) -> [Help 1]
替换旧文件
- 复制上面已经编译的文件 mysqlreader/target/datax/plugin/reader/mysqlreader/mysqlreader-0.0.1-SNAPSHOT.jar 替换到已安装的mysqlreader目录下 plugin/reader/mysqlreader/
- 复制 mysqlreader/target/datax/plugin/reader/mysqlreader/libs目录 到 plugin/reader/mysqlreader/lib
- cp -R mysqlreader/target/datax/plugin/reader/mysqlreader/libs /Datax/plugin/reader/mysqlreader/
- 其实重点是libs下的2个文件
- mysql-connector-java-8.0.19.jar plugin-rdbms-util-0.0.1-SNAPSHOT.jar
- mysqlwriter同理
验证
附:
hitsdb-client.jar 0.4.0拉取不到的解决方法
- aliyun的该包GitHub https://github.com/aliyun/aliyun-tsdb-java-sdk/tree/release/0.4.0
- git clone 切换到 release/0.4.0
- 当前机器执行 mvn install -Dmaven.test.skip=true
- 当前机器再重新编译一下Datax 如果仍然报错 去修改一下 /tsdbwriter/pom.xml 的hitsdb-client的版本号
0.4.0-SNAPSHOT - 再去Datax根目录重新编译项目