开发者社区> 问答> 正文

完全相同的MySQL表结构/数据,相同查询的结果不同

这是我的情况。

我正在从一台服务器迁移到另一台服务器。作为其中的一部分,我将遍历数据库数据。

我使用校验和来验证数据,所以我知道它是相同的。此外,我在新旧主机上创建了一个隔离的表,并将单行移到了那里。两个表中的校验和匹配,表明原始数据在字节级别上应该完全相同。

CHECKSUM TABLE test 我已经检查了结构,它也完全一样。

SHOW CREATE TABLE test 该字段的类型:

item varchar(32) COLLATE utf8_unicode_ci NOT NULL 原始数据如下所示(在两种情况下,我都将其显示):

§lO 但是,当我使用简单的查询在PHP中检索它时:

SELECT * FROM test 在旧服务器/主机上,我得到以下原始字节序列:

-194-167-108-79-

在新服务器上,开始时我得到了几个额外的字节:

-195-130-194-167-108-79-

为什么在两台服务器之间完全相同的原始数据,表结构和查询会返回不同的结果?我应该怎么做才能确保将来的结果尽可能一致?

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 11:57:15 591 0
1 条回答
写回答
取消 提交回答
  • §lO是的“ Mojibake” §lO。我认为后者(3个字符)是“正确的”吗?

    原始数据如下所示(在两种情况下,我都将其显示)

    是伪造的,因为用于显示它的技术可能与编码混淆了。

    由于3个字符变为4,然后变为6,因此您可能具有“双重编码”。

    这讨论了“双重编码”如何发生: UTF-8字符有问题;我看到的不是我存储的

    如果您提供了更多信息(CREATE TABLE,十六进制,迁移数据的方法等),我们也许可以进一步弄清您遇到的麻烦。

    2019-11-18 11:57:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像