表总和排序规则是 latin1_swedish_ci,但所有单独的表都显示 utf8_general_ci
Posted
技术标签:
【中文标题】表总和排序规则是 latin1_swedish_ci,但所有单独的表都显示 utf8_general_ci【英文标题】:tables sum collation is latin1_swedish_ci, but all individual tables show utf8_general_ci 【发布时间】:2016-11-10 06:04:04 【问题描述】:这个 mysql 数据库是通过安装 WordPress 在 Godaddy 中设置的。网站上的事情发生了故障 - 更换主题和停用插件并没有帮助,所以我决定使用 phpmyAdmin 查看表格。
我以前从未见过这个 - 所有表都使用 utf8_general_ci(有 13 个表),但底部是所有内容的摘要,排序规则显示 latin1_swedish_ci,而不是 utf8...
似乎不应该这样。使用 utf8...而不是 latin1_swedish,我能做些什么来使其统一?
【问题讨论】:
【参考方案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 SET
和COLLATION
很重要。
(很遗憾,第 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 界面设置的。 如果只有英文,那么“没有问题”。也就是说,不要担心差异,它不会有任何影响。 非常感谢您的详细解释。以上是关于表总和排序规则是 latin1_swedish_ci,但所有单独的表都显示 utf8_general_ci的主要内容,如果未能解决你的问题,请参考以下文章