【问题标题】:tables sum collation is latin1_swedish_ci, but all individual tables show utf8_general_ci表总和排序规则是 latin1_swedish_ci,但所有单独的表都显示 utf8_general_ci
【发布时间】:2016-11-10 06:04:04
【问题描述】:

这个 MySQL 数据库是通过安装 WordPress 在 Godaddy 中设置的。网站上的事情发生了故障 - 更换主题和停用插件并没有帮助,所以我决定使用 phpmyAdmin 查看表格。

我以前从未见过这个 - 所有表都使用 utf8_general_ci(有 13 个表),但底部是所有内容的摘要,排序规则显示 latin1_swedish_ci,而不是 utf8...

似乎不应该这样。使用 utf8...而不是 latin1_swedish,我能做些什么来使其统一?

【问题讨论】:

    标签: mysql wordpress collation


    【解决方案1】:

    为了帮助解释,SHOW CREATE TABLE 给了你这样的东西:

    CREATE TABLE `h2u` (
      `c` varchar(9) CHARACTER SET utf8 DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    

    这表示 c 列是 utf8(以及一些 utf8 排序规则,可能是 utf8_general_ci),但是您可能添加的任何其他列的 默认 是 latin1 (和一些 latin1 排序规则,可能是 latin1_swedish_ci)。

    上的CHARACTER SETCOLLATION 很重要。

    (很遗憾,第 3 方软件虽然试图提供帮助,但有时会掩盖有用的信息。)

    编辑

    我会猜测从图片中数据库默认是latin1 / latin1_swedish_ci和默认每个 table 是 utf8 / utf8_general_ci。但重要的是每个的设置是什么;图片没有显示。

    如果您使用的不是英文文本,则每列的字符集和排序规则很重要。你是吗?

    是的,你发现了一些奇怪的东西。我想说的是,它可能并不重要,而且除了非英文文本外,不太可能引起任何故障。

    以下将创建类似于图像的输出:

    CREATE DATABASE wp DEFAULT CHARACTER SET latin1;
    CREATE TABLE wp_users (...) DEFAULT CHARACTER SET utf8; -- overriding the 'latin1'
    

    【讨论】:

    • 它在排序规则列中。也许一张照片会有所帮助?除非我完全不理解你的观点(这是可能的)。 imgur.com/a/otbf1
    • 回答您的问题 - 不,将使用英语以外的任何内容。所以罪魁祸首不是分贝。但是我在许多使用 GoDaddy 自动设置设置的 WP 网站上工作过。我在其他网站的其他数据库中没有看到这种异常情况……它们也是使用 GD 界面设置的。
    • 如果只有英文,那么“没有问题”。也就是说,不要担心差异,它不会有任何影响。
    • 非常感谢您的详细解释。
    猜你喜欢
    • 2011-06-13
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 2010-10-30
    • 2010-09-16
    • 2015-06-03
    相关资源
    最近更新 更多