ITPub博客

首页 > 数据库 > 国内数据库 > 【-YashanDB 知识库】字符集 latin1 的 MySQL 中文数据如何迁移到 YashanDB

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

原创 国内数据库 作者:崖山数据库系统YashanDB 时间:2025-01-24 17:36:52 0 删除 编辑

问题

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

MySQL 中文正常

img1

迁移到  YashanDB 的中文不正常

img2

原因

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、 导出数据

img3

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

img4

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

img5

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

img6

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

img7

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

img8

DBeaver  转换 MySQL 库表为  Insert 语句,然后插入到 YashanDB**** 库表

1、“导出目标” 选择导出到 “SQL”

img9

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

img10

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

img11

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

img12

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

img13

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

img14

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

img15

局限性

仅适合单张表的迁移。如果迁移多张表,不建议采用上述方法。因为 DBeaver 不是专业的迁移工具,数据类型的兼容上处理不全面,容易遇到问题,建议对有问题的数据表单独迁移。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3070724/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639967