mysql迁移到达梦数据库报错:列[xx]长度超出定义
问题:
mysql迁移到达梦数据库报错:列[xx]长度超出定义
原因:
经查发现是因为达梦数据库以字节为单位。若是 gb18030 字符集,varchar(2) 才可以存一个汉字;若是 UTF-8 字符集,varchar(3) 才可以存一个汉字。
解决方法:
报错字段少,只需将出错的字段长度改大即可导入成功。
报错的字段多,需要重新初始化达梦数据库实例,在“初始化参数”中,勾选“VARCHAR类型以字符为单位”。
【截止博文发布日期,新版本的DM8初始化时删去了此选项,请选择2024年1月及其之前的版本】
初始化实例之后,重新导入数据库均没有报错。