MySQL迁移至DM8常见适配问题

驱动下载及DEM工具使用指导

  1. 请下载DM驱动,将MySQL的JDBC驱动mysql-connector-java,替换为DM8驱动DmJdbcDriver18。
  2. 请使用DEM工具进行数据移植。

    具体操作请参见官方DM数据移植文档和《DM DBA手记之MySQL移植到DM》。

DM数据库兼容性设置

请在迁移数据之前,将DM数据库参数调整为兼容MySQL数据库,可参考下列措施:

详情请参见DM官方数据移植文档目的端达梦准备中兼容性参数设置。

DM数据库字符编码设置

MySQL建表默认的字符编码是UTF8_GENERAL_CI(不区分大小写),所以建议在MySQL迁移到DM时,将达梦数据库设置成大小写不敏感。可参考下列措施:

详情请参见:

中文字符存储设置

MySQL中VARCHAR类型在5.0.3版本及以上按字符存储,VARCHAR(1)存储一个汉字;DM默认以字节存储,VARCHAR(3)存储一个汉字。MySQL5.0.3及以上版本迁移到DM中,可能会发生字符截断的问题。若表中包含中文字符,可参考下列措施:

系统保留字配置

当在DM中创建表等对象时,出现“语法分析出错”报错,可能是因为使用的对象名为系统保留字。请通过SQL语句SELECT * FROM V$RESERVED_WORDS WHERE RESERVED='Y' AND KEYWORD='对象名称';,查询该对象名是否为保留字,若是,可参考下列措施:

DM数据库INT类型不能设置数据精度

在DM数据库中INT类型不能设置数据精度。请核查表中字段定义中的INT类型是否有精度,如果有请去除精度,例如:create table test1(v1 int(10),v2 varchar(20));需要更改成create table test1(v1 int,v2 varchar(20));。

时间类型TIMESTAMP设置

MySQL中时间类型TIMESTAMP默认设置为“0000-00-00 00:00:00”,在DM中必须在“0001-01-01 00:00:00.000000”到“9999-12-31 23:59:59.999999”之间。若在迁移过程中遇到TIMESTAMP类型为“0000-00-00 00:00:00”报错,请将其修改为有效的日期类型。

DM数据库单双引号使用

DM中区分单双引号使用,双引号用于关键字、对象名、字段名、别名等,单引号用于字符串常量。对于字段的DEFAULT设置,字符或字符串默认值,需要添加单引号,如char(10) default 'abc'。