使用DTS从MySQL 8.0迁移到达梦数据库

在使用DTS进行mysql8.0到dm7的数据迁移,选择DTS中的数据源并连接时 错。(使用默认驱动)

错信息:Unknown character set index for field ‘255’ received from server.

该问题原因是MySQL版本高,mysql的jar版本低造成mysql与jar的编码错乱,也就是说默认的jar包版本过低。

于是指定对应mysql的新的驱动

再次指定新的驱动后仍然 错

错信息:com/mysql/jdbc/Driver : Unsupported major.minor version 52.0

出现此问题的原因是jdk 版本与jdbc driver不兼容的问题,JDK的版本过低。jdk高版本能兼容低版本,但是低版本不能兼容高版本

查询 上相关资料得知:

major.minor version,它相当于一个软件的主次版本 ,只是在这里是标识的一个Java Class的主版本 和次版本 。

J2SE 8 = 52,

J2SE 7 = 51,

J2SE 6.0 = 50,

J2SE 5.0 = 49,

JDK 1.4 = 48,

JDK 1.3 = 47,

JDK 1.2 = 46,

JDK 1.1 = 45

也就是说需要jdk1.8环境,而通过客户反馈的JDK版本情况,也是在使用JDK1.8

在达梦软件安装目录下,有一个jdk目录,达梦软件运行都是使用的此jdk环境

解决办法,更换DTS使用的JDK环境:

方法一:关闭DTS工具。将已经存在的jdk文件备份一下,把要求的JDK1.8的环境拷贝过来,并重命名为jdk注意:此方法由于会替换整个达梦数据库软件的JDK,即便JDK是向下兼容的,仍可能存在一定风险

方法二:关闭DTS工具。进入达梦软件安装目录的tool目录,可以看到有一个dmt.ini文件,将此文件先备份,此处我备份为dts_bak.ini

此时修改dts.ini文件,将原来使用的jdk更改为所需要的jdk版本

即修改../jdk/bin为新jdk目录,我的目录是C:Program FilesJavajdk1.8.0_221bin

此时即完成了JDK的替换工作(此方法只更改了DTS使用的JDK版本,不会影响整个数据库软件)

———————————————————–

经过以上方法更换DTS使用的JDK版本后,再次打开dts工具,配置连接数据源,指定驱动, 并自动获取驱动类名

此时点击下一步仍会 错。

错信息:The server time zone value ‘?й???????’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the ‘serverTimezone’ configuration property) to use a more specifc time zone value if you want to utilize time zone support.

此错误主要是由于mysql8.0版本的使用的数据库连接字符串不一样,而且还对时区有要求,所以要勾选使用自定义URL选项,再引用下面的连接即可

url: jdbc:mysql://localhost:3306/haracterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true

此时再点击下一步就不会再 错,即能成功连接到mysql8.0

目前已验证MySQL 8.0.17和MySQL 8.0.19版本

我的博客???????《Jackin’s Blog – 知识改变命运》???????学习分享更多知识

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成32090 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月5日
下一篇 2022年8月5日

相关推荐