准备
在迁移前,先在本地数据库新建一个空库,并将要迁移到达梦数据库的MySQL数据库复制到本地的这个空库中,因为接下来需要修改某些表的设置。
- CURRENT_TIMESTAMP
CURRENT_TIMESTAMP是MySQL的函数,达梦不支持该函数,如果使用了这个函数,那么需要修改。
例如将TABLE_NAME表中的updated_at字段修改为datetime类型,并去掉默认值。
ALTER TABLE `TABLE_NAME` MODIFY COLUMN `updated_at` datetime(0) NULL;
- 0000-00-00 00:00:00
如果你的时间字段中有0000-00-00 00:00:00这样的数据,也是无法迁移成功的,可以批量改为1970-01-01 00:00:00。 -
修改char为varchar
有的字段设置了默认值时,迁移时可能会提示长度不足。
例如设定了user_sex这个字段为char(1),默认值为男,那么需要改为char(3)或者改为varchar(1)
注意:varchar的长度与你初始化数据库时的这两个参数UNICODE_FLAG和LENGTH_IN_CHAR相关。
UNICODE_FALG:此参数表示了数据库中所有数据的字符集,包括数据字典的字符集。需要注意的是,数据库一旦初始化完成,字符集就将无法修改。我们可以使用select unicode来查询当前数据库的字符集种类,0代表gb18030,1代表UTF8。
LENGTH_IN_CHAR:此参数决定了,数据库中的varchar类型对象的长度是否以字符为单位。取值为1则设置为以字符为单位,将存储长度值按照理论字符长度进行放大。取值为0则所有varchar类型对象的长度以字节为单位。
- enum类型
例如enum('男','女')
这种类型的字段需要改为
ALTER TABLE `TABLE_NAME` MODIFY COLUMN `user_sex` varchar(1) DEFAULT '男';
新建达梦数据库用户
新建表空间
使用SYSDBA用户登录DM管理工具,新建两个表空间:TEST_DATA、TEST_IDX,分别用于存储表和索引。

新建用户
新建管理用户,选择刚创建的两个表空间,密码长度至少为9位。

所属角色,勾选PUBLIC
勾选需要的权限
新建用户后,将出现同名的模式。
断开连接,使用刚创建的TEST用户登录。
使用DM数据迁移工具
- 新建迁移工程,选择迁移方式

-
选择目的模式,勾选保持对象名大小写

注意事项
当某些表迁移失败时,注意要在达梦中删除表后,再重新迁移。
varchar长度说明

没有看懂,请作者给予支持