需求:将Oracle 数据库内容导入到Mysql 中;
以前本人利用Navicat 工具的数据传输功能成功将Sqlserver 数据库的表和数据同步到Oracle中,所以一开始准备继续使用Navicat ,但在实际操作过程中发现Oracle 和Mysql的时间字段不能直接同步;遂放弃该方案;
然后尝试使用MySQL Migration Toolkit ;
1. 安装
http://dev.mysql.com/downloads/gui-tools/5.0.html下载MySQL GUI Tools(其实就是一个MySQL管理工具),其中就包括MySQL Migration Toolkit工具,一路next安装完毕
2.运行
===问题1:initialized Java loader 报错
首先检查Java jdk 安装32位环境。
如果系统中已安装64位java jdk,可以直接再安装32位,不用卸载64位,安装后不要配置环境变量,直接指定MySQL Migration Toolkit 运行环境即可。
打开cmd,进入MySQL Migration Toolkit 安装目录,执行
可以启动MySQL Migration Toolkit;
然后一路next
===问题二,配置后source database和target database后连接失败,报错Unknown character set index for field '255' received from server.
该问题是MySQL字符集配置不符,本人首先检查MySQL安装配置文件my.ini 中的字符集配置,通过多次修改后仍然不成功,经过百般度娘,看到有人提到是MySQL连接的jar 包版本引起的问题。
打开MySQL Migration Toolkit lib包下,mysql-connector-java-5.0.4-bin.jar 是过时的,本人将其换为 mysql-connector-java-5.1.35-bin.jar。成功解决此问题。
在选择Migration of type Oracle Schema时,查询当前Mysql 字符集
如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User defined,并在下方填写charset=gbk, collation=gbk_general_ci。
Migration of type Oracle Table中要设置参数点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Data consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User defined,并在下方填写addAutoincrement=yes, charset=gbk, collation=gbk_general_ci, engine=INNODB。选择好之后按“Next”继续。