utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则

Posted

技术标签:

【中文标题】utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则【英文标题】:utf8mb4_unicode_ci Selected in PhpMyAdmin but WordPress Tables using utf8mb4_unicode_520_ci Collation 【发布时间】:2019-02-12 07:25:38 【问题描述】:

我在 phpMyAdmin 的两个选项中,在常规设置下的 服务器连接排序 和PhpMyAdmin 操作选项卡下的数据库 但是该数据库中属于 WordPress 博客的表正在使用 utf8mb4_unicode_520_ci 排序规则(可以在主窗口中看到,例如通过单击该数据库)

我的问题是,我选择了 utf8mb4_unicode_ci 但 Database for WordPress 博客正在使用数据库中的 utf8mb4_unicode_520_ci 表,这有什么坏事吗?该数据库中的所有表都使用 utf8mb4_unicode_520_ci。

1) 我是否应该在 PhpMyAdmin 中将选项从 utf8mb4_unicode_ci 更改为 utf8mb4_unicode_520_ci(在上面提到的两个地方)

2) 或者它没有任何不良影响,我应该保持原样。

希望得到此查询的答案。 感谢您的阅读。

【问题讨论】:

据我所知,排序规则会影响字符串比较。并且可以使数据库排序规则和表排序规则不同。但是,如果您比较具有不同排序规则的两个表,它可能会导致 weird result。实际上,使用 utf8mb4_unicode_ci 的建议是在您开发自己的应用程序时,但由于它是 wordpress .. 如果不自己更改表格,我们无能为力 - 这反过来可能会破坏 wordpress.. WordPress 官方核心开发团队推荐使用 utf8mb4 源代码:make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade ...所以现在我应该保持原样吗? 嗨@Jack,问题是你的wordpress已经在使用utf8mb4_unicode_520_ci排序规则,它有a bit of backward compatibility。而您分享的文章已经有 3 年历史了,并且是指旧的 wordpress 4.2。我相信最好保持原样 - 你的已经是 4.9 了,对吧?如果是,则无需担心。 是的,我安装了最新版本的 WP。 【参考方案1】:

在做CREATE TABLE ...时,排序规则来自:

您可以使用CREATE 明确声明排序规则,或者 默认为数据库的排序规则 (CREATE DATABASE ...)

类似地,在声明列时,您可以显式或默认为TABLE's 设置。

我更喜欢明确,不让事情默认。

当数据库/表/列在CHARACTER SET 和/或COLLATION 上不一致时没有什么坏处。

在您使用 mysql 8.0 之前,utf8mb4_unicode_520_ci 是“最佳”排序规则。 (根据 Unicode 标准委员会最好。)

【讨论】:

以上是关于utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则的主要内容,如果未能解决你的问题,请参考以下文章

utf8mb4_unicode_ci 与 utf8mb4_bin

排序规则将 utf8mb4_unicode_ci 更改为 utf8mb4_general_ci

collat​​ion utf8mb4_unicode_ci 是啥意思

wordpress导入数据错误MySQL返回:#1273 – Unknown collation:’utf8mb4_unicode_ci’

操作“=”的排序规则(utf8mb4_unicode_ci,EXPLICIT)和(utf8_general_ci,COERCIBLE)的非法混合

SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8mb4_unicode_ci' is no