问题
MySQL Server 字符集 latin1 的中文数据通过 YMP 23.2.1.3 遇到乱码问题
MySQL 中文正常

迁移到 YashanDB 的中文不正常

原因
MySQL Server 字符集 latin1,可以写入 UTF8 中文,导致存放的数据是 latin1 数据,但内容实际上是 utf8 编码。目前 YMP 23.2.1.3 还不支持字符集 latin1 的 MySQL 中文数据:
https://doc.yashandb.com/ymp/23.2/zh/ 版本说明 /v23.2.html
YCM 只支持数据迁移支持的字符集为 GBK 和 UTF-8(MySQL 要求库、表、列、服务、系统、连接编码配置要一致),并要求源端数据库与目标数据库的字符集一致。因此迁移中文数据会遇到乱码问题。
解决方法
有两种方法:1)DBeaver 直接迁移 MySQL 库表到 YashanDB 库表;2)DBeaver 转换 MySQL 库表为 Insert 语句,然后插入到 YashanDB 库表。根据实际情况进行选择。
DBeaver 直接迁移 MySQL 库表到 YashanDB 库表
1、 导出数据

2、“导出目标” 选择导出到 “数据库表”

3、“表映射” 选择迁移目标数据库 YashanDB

4、“抽取设置” 使用默认值

5、“数据加载设置” 选择 “在加载前截断目标表”

6、最后 “确认” 并执行 "proceed"

DBeaver 转换 MySQL 库表为 Insert 语句,然后插入到 YashanDB**** 库表
1、“导出目标” 选择导出到 “SQL”

2、“抽取设置” 使用默认值

3、“格式设置” 选择 "每条数据的数据行数 - 1"

4、“输出” 设置输出 SQL 文件所在目录

5、点击 “确认” 并执行 "proceed"

6、调整生成的 SQL 文件中不兼容的语法,主要是 MySQL 的反引号

7、在 YashanDB 执行插入语句即可

局限性
仅适合单张表的迁移。如果迁移多张表,不建议采用上述方法。因为 DBeaver 不是专业的迁移工具,数据类型的兼容上处理不全面,容易遇到问题,建议对有问题的数据表单独迁移。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3070724/ ,如需转载,请注明出处,否则将追究法律责任。