因需求,原本使用的是mysql数据库,现要改为达梦数据库,顾记录迁移过程。
目录
一、下载DM连接工具https://www.dameng.com
二、迁移数据
三、迁移遇到的问题
一、下载DM连接工具https://www.dameng.com
下载安装好,会有如下图工具
拿到连接DM数据库地址,使用DM管理工具连接上达梦数据库
二、迁移数据
1.打开DM数据迁移工具,新建一个工程
2.新建迁移
勾选完要迁移的表,点下一步,预览你要迁移的表,没问题点完成,等待迁移结束可以了。
以上就是从mysql迁移数据到DM。
三、迁移遇到的问题
问题截图
问题原因
该问题是由于字符串截断造成的乱码或数据不完整。MySQL 中 VARCHAR 类型长度计算规则:
5.0.3 版本以下,varchar 按照字节存储,存一个汉字需要三个字节,varchar(10)可存储 3 个汉字。
5.0.3 版本及以上,varchar 按照字符存储,varchar(10)可存储 10 个汉字。
DM 默认为以字节为单位,varchar(10) 可存储 3 个中文字符,这样 MYSQL5.0.3 版本及以上版本迁移到 DM 中,可能会发生字符截断的问题。若设置参数 LENGTH_IN_CHAR=Y 后变为按照字符长度计算长度。
解决方案
问题原因没看明白,不要紧,那是官方的话,我的理解是:在迁移数据时,表创建后,执行insert语句时,插入的内容,超出定义的范围。
使用DM管理工具新建一个查询,如下图
查一下报“字符串截断”错误的表,只看字段是VARCHAR类型的,如下图
把VARCHAR范围改为,原来的三倍,比如原先ID是VARCHAR(10),改为VARCHAR(30)
alter table 表名 modify 字段名 VARCHAR(800);
改完表字段后,在迁移一遍,迁移的时候,只勾选这张表。