首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL -字符集和排序规则之间的差异会引起任何问题吗?

MYSQL -字符集和排序规则之间的差异会引起任何问题吗?
EN

Database Administration用户
提问于 2022-10-27 10:54:48
回答 2查看 352关注 0票数 0

我在MySQL版本8上有一个模式,我应该将它迁移到一个MariaDB版本10.3。(与Mysqldump)

模式有Charset = utf8mb4collation = utf8mb4_0900_ai_ci

MariaDB服务器具有默认的Charset = utf8collation = utf8_general_ci

当我试图导入转储时,由于错误,它是不可能的:

代码语言:javascript
复制
Unknown collation: utf8mb4_0900_ai_ci

我从这里找到了一个解决方案:https://stackoverflow.com/questions/42385099/1273-unknown-collation-utf8mb4-unicode-520-ci

而且起作用了。但我想知道:

首先:这些差异是否会导致dmp数据导入后的数据丢失?

第二:这些差异会导致我的新服务器上的输出或排序有什么不同吗?

  • 我在MariaDB服务器上有一些其他模式,但我不能(也不想要!)更改默认字符集和排序规则)
EN

回答 2

Database Administration用户

回答已采纳

发布于 2022-10-27 16:49:57

首先,我不建议追溯到20年前的Charset = utf8和collation = utf8_general_ci

utf8将失去所有的Emoji和一些汉字。另外,很多东西会有不同的比较。

相反,去MariaDB中的“最佳可用的”.

你确实有问题,但你问题的标题不是正确的问题。

代码语言:javascript
复制
Unknown collation: utf8mb4_0900_ai_ci

这是因为MySQL实现了一些MariaDB尚未实现的COLLATIONs

两个数据库都处理字符集utf8mb4。因此,编码不是问题。

校对可能是一个小问题,也可能是一个大问题。

  • 若要导入数据而不具有指定的排序规则,必须编辑转储文件以更改为排序规则。最好的可能是utf8mb4_unicode_520。它与utf8mb4_0900_ai_ci不完全相同,但很接近。
  • (这不大可能,但有可能。)如果您有一些特殊字符,并且如果这些字符被一个排序规则而不是另一个排序规则视为“相等”,那么您可能会对任何PRIMARY KEYUNIQUE键产生问题。它可能会显示为“重复键”。

你的问题--

数据丢失--不(假设为utf8mb4),除非您获得一个dup键,这将导致插入一行失败。

输出上的差异

我的图表没有显示520和0900之间的排序规则差异,但是图表只覆盖了UTF-8字符的一小部分。(与utf8_general_ci有许多不同之处。)

票数 2
EN

Database Administration用户

发布于 2022-10-27 13:42:22

这些差异会导致dmp数据导入后的数据丢失吗?

不是的。MariaDB 10.3支持UTF8MB4。

这些差异会导致我的新服务器上的输出或排序有什么不同吗?

是。比较和排序是根据排序进行的。因此,比较可能产生另一个结果,因此,另一个输出,排序可能产生另一个行排序。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/318824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档