首页 > 数据库 >datax从oracle到mysql数据传输

datax从oracle到mysql数据传输

时间:2023-10-18 20:55:05浏览次数:37  
标签:10 jdbc java datax mysql oracle localhost

datax进行数据迁移: 

所需配置:1、服务器:windows/linux(本人使用的本地windows)

                  2、环境:python2.6.3   和java.11.0.20(本人使用)

                  3、datax(https://github.com/taosdata/DataX

以上下载完成后可以通过下面命令来查看是否下载成功:

java -version(查看java版本)

python -V(查看python版本

下载完成datax后进入bin目录下打开命令行执行:python D:\datax\bin\datax.py  D:\datax\job\job.json

说明:

Python:执行pytho的
D:\xx.py:datax的py脚本
D:\xx.json:同步配置的json文件
如果出现乱码的话,在CMD中输入:
CHCP 65001
 

获取reader/writer模板 :python datax.py -r streamreader -w streamwriter   

   

 

上述模板填完后可执行文件:

执行命令:python datax.py stream.json

执行过程中可能出现的错误及解决办法:

错误1:对于readername : oraclereader

2023-10-18 14:37:15.374 [job-0] WARN DBUtil - test connection of [jdbc:oracle:localhost:port/服务名] failed, for Code:[DBUtilErrorCode-10], Description:[连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境).]. - 具体错误信息为:java.sql.SQLException: 指定了无效的 Oracle URL.
2023-10-18 14:37:15.376 [job-0] ERROR RetryUtil - Exception when calling callable, 异常Msg:DataX无法连接对应的数据库,可能原因是:1) 配置的ip/port/database/jdbc错误,无法连接。2) 配置的username/password错误, 鉴权失败。请和DBA确认该数据库的连接信息是否正确。

解决办法:jdbcurl格式: 使用thin方法

                                          "jdbc:oracle:thin:@localhost:port/服务名"

 

错误2:对于writername  : mysqlwriter 

2023-10-18 14:47:41.918 [job-0] ERROR RetryUtil - Exception when calling callable, 异常Msg:Code:[DBUtilErrorCode-10], Description:[连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境).].  -  具体错误信息为:java.sql.SQLException: No suitable driver found for jdbc:mysql:localhost:port/db_name?characterEncoding=utf8&yearIsDateType=false&zeroDateTimeBehavior=convertToNull&tinyInt1isBit=false&rewriteBatchedStatements=true

解决办法 : jdbcurl 格式:jdbc:mysql://localhost:port/db_name?characterEncoding=utf8

 

错误3:对于writername  : mysqlwriter  

2023-10-18 14:43:13.583 [job-0] ERROR RetryUtil - Exception when calling callable, 异常Msg:Code:[DBUtilErrorCode-10], Description:[连接数据库失败. 请检查您的 账号、密码、数据库名称、IP、Port或者向 DBA 寻求帮助(注意网络环境).]. - 具体错误信息为:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
解决办法:1.下面jdbcUrl只能指定一个路径,将列表转为字符串即可 []换成 ""

                     "jdbcUrl":["jdbc:mysql://localhost:3306/temp?characterEncoding=utf8"]改为
                     "jdbcUrl":"jdbc:mysql://localhost:3306/temp?characterEncoding=utf8"
                  2.原因:电脑上的mysql版本高,而项目中的mysql-java驱动版本过低,二者不匹配。

                     解决步骤:1、mysql>select version(); 查看mqsql版本,我的版本是8.0.29

                                       2、去官网下载对应版本的mysql-java驱动,MySQL :: Download MySQL Connector/J (Archived Versions)

                                  

 

                                             下载完后解压文件,用mysql-connector-java-8.xxx.jar替换原来的mysql-connector-java-5.xxx.jar(直接换到datax/plugin/writer/mysqlwriter/libs目录下)

                                              替换完成后运行 python datax.py 路径/stream.json                            

                                              jdbcurl=jdbc:mysql://localhost:3306/xxxxxx 末尾加上&serverTimezone=UTC

                                              username和password跟你本机数据库用户名/密码一致

                                            (driver改成com.mysql.cj.jdbc.Driver(mysql 5.xxx 这里的驱动类是com.mysql.jdbc.Driver))

 

标签:10,jdbc,java,datax,mysql,oracle,localhost
From: https://www.cnblogs.com/zzy-0039/p/17772317.html

相关文章

  • 将自定义的日志直接写入到 mysql 数据库
    将日志直接写入到MySQL数据库中可能会对性能产生影响。如果需要高性能的日志记录解决方案,则可以考虑使用专门的日志记录器,例如Elasticsearch、Logstash和Kibana(ELK)堆栈。安装MySQL数据库,并创建一个新的数据库和表来存储日志数据。使用MySQL连接器来连接到MySQL数据库。创建一个包含......
  • MySQL性能优化
    https://www.bilibili.com/video/BV17e411w7EM/?spm_id_from=333.788.recommend_more_video.0&vd_source=46d50b5d646b50dcb2a208d3946b1598......
  • MySQL主从复制无法同步删除操作吗?【转】
    简介在MySQL主从复制中,当主库执行删除操作时,从库并不会同步删除对应的数据。这是由于MySQL的复制机制决定的。为了解决这个问题,我们可以通过在主库上创建触发器来实现删除操作的同步。解决方案概览下面是解决方案的整体流程图: 创建触发器首先,我们需要在主库上创建一个触发......
  • oracle TDE使用
    环境:OS:Centos6DB:11.2.0.43节点组成的rac环境 1.先要创建一个"wallet钱包",这个钱包里面保存着密钥,Oracle就是通过这个密钥对列进行加密和解密的.在其中一个节点上操作,我这里是在节点1上操作su-oracle[oracle@rac01~]$mkdir$ORACLE_BASE/wallet[oracle@rac01~]$c......
  • mysql主从复制-重做从库
    mysql主从复制-重做从库在主服务器执行查看从节点的数量SHOWSLAVEHOSTS;+-----------+------+------+-----------+--------------------------------------+|Server_id|Host|Port|Master_id|Slave_UUID|+-----------+------+-----......
  • Mysql 连接池配置问题
     使用SglSugar BulkCopy方法进行大批量插入时一直报错,检查了实体、数据库字段属性都无异常,最后发现数据库连接中配置了 AllowZeroDatetime=true;ConvertZeroDateTime= true;注释后异常解决。  AllowZeroDatetime=true,可以解决的是Mysql中datetime默认值为0000-00......
  • MySQL 是怎么加锁的
    MySQL是怎么加锁的什么SQL语句会加行级锁?普通select不会加锁,除非是串行化隔离等级。但是select...forupdate或者select...lockinsharemode加锁,统称为锁定读。还有updatedelete语句也会加锁行级锁有哪些种类?三种,分别是recordlock,gaplock,next-keylockrecordloc......
  • debian12安装mysql5.7
    出于某些原因,不得不捏着鼻子在debian12上安装mysql5.7这里下载debian格式的包,选第一个bundle的安装步骤sudogdebi-nxxx安装的顺序commoncommon-clientclientcommon-serverserver......
  • mysql 运行没错,在mybatis中报错 druid 报错 syntax error, expect RPAREN, actual
    您遇到的问题可能是由于Druid版本较旧导致的。在Druid 1.0.19中,对于某些语法结构的处理存在一些限制和问题。针对您的具体情况,可以尝试以下解决方案:1. 确保SQL语句的括号匹配正确。错误消息"expect RPAREN, actual IDENTIFIER DAY"表明Druid期望一个右括号(RPAREN),但实际上......
  • 用system账户修改过Oracle密码期限,改成unlimited 后来新建的账户的密码期限也是unlimi
    https://www.cnblogs.com/hooly/p/14171716.htmlhttps://blog.csdn.net/wang13145/article/details/106660266用system账户修改过Oracle密码期限,改成unlimited后来新建的账户的密码期限也是unlimited吗?......