写点什么

【YashanDB 知识库】字符集 latin1 的 MySQL 中文数据如何迁移到 YashanDB

作者:YashanDB
  • 2025-01-23
    广东
  • 本文字数:718 字

    阅读完需:约 2 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7281317.html?templateId=1718516


问题


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 不是专业的迁移工具,数据类型的兼容上处理不全面,容易遇到问题,建议对有问题的数据表单独迁移。

发布于: 刚刚阅读数: 4
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】字符集latin1的MySQL中文数据如何迁移到YashanDB_yashandb_YashanDB_InfoQ写作社区