WordPress创建了排序规则混乱,现在无法读取它,因为MySQL8?

sshcrbum  于 2023-11-16  发布在  Mysql
关注(0)|答案(2)|浏览(125)

我有一个WordPress的网站自2009年以来,在当时它创造了一个真实的混乱的排序。我得到:

  • latin1_swedish_ci(我的网站上从来没有瑞典语?所有内容都是德语)
  • latin1_german2_ci
  • utf8mb3_general_ci
  • utf8mb3_unicode_ci
  • 甚至一些ascii_general_ci

现在一切都很好,直到MySQL 8沿着出现。
由于变音现在被打破了,我看了看我的数据库-看到他们也存储“错误”。我猜我的WordPress发送UTF-8到一些拉丁1表。
但到目前为止,一切都很好。
因此,我尝试更新整个数据库排序规则-我认识到这不会影响单个表排序规则。
而当我试图改变一个单一的表排序规则(我的想法是让他们都utf-8_mb4_general_ci-它给我一个警告,字符可能会被改变-不能恢复。
所以我有点犹豫如何从这里开始。也不确定。转换所有表中的排序规则能解决这个问题吗?
我可以添加一个:

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

字符串
我的wpconfig
但是,因为我有超过1.000个职位在网站上,我得到了一个恐怖,不得不做这一切手动后,因为我搞砸了。
此外,数据库中有241个表,因此可能需要一些时间才能逐个完成。
我的目标是在我的WP前端和后端再次正确显示变音符号等。

lg40wkob

lg40wkob1#

我现在找到了一个工作解决方案(在我的主机支持的帮助下-他们真的很善良和有帮助):
我们改变了我的wp-config

define('DB_CHARSET', 'utf8');

字符串

define('DB_CHARSET', 'latin1');


这就暂时起到了作用。我的网站又正常工作了,变音符号显示正确。
因此,现在我可以花一些时间将我的数据库的克隆重新编码为UTF-8 -因为我认为这将更符合未来的需要。
感谢所有的帮助!:-)
您好,
安德烈

bvuwiixz

bvuwiixz2#

我从WordPress Codex中找到了这个“Converting Database Character Sets“。它似乎发生在2010年之前写这篇文章的网站上。它似乎描述了你需要做些什么来修复你的数据以获得适当的utf8支持。
一个关键部分脱颖而出:
每个网站在数据库字符集转换方面都是不同的[.]如果你阅读这篇文章,那么你可能必须手工完成,因为大多数为此目的编写的插件已经停止工作,因为WP改变了它的默认行为。
这是他们建议的技术的一个快速总结:
将列转换为blob,然后使用新的字符集将其转换回原始格式[...]解决方案是首先将所有包含文本的字段转换为它们的二进制(“BLOB”)对应数据类型(没有字符集),然后将它们沿着更改回它们的正常数据类型以及所需的新字符集。
你可能也对另一个讨论“Please explain how WordPress works with MySQL character set and collation at a low level“和回复感兴趣。它提到了一个WP用来检测要使用什么字符集的系统。这可能就是故障所在。
也可以说是you're not the only person to run into this kind of thing with MYSQL 8
祝你好运!我发现这是在试图帮助其他人解决他们旧帖子中出现的奇怪字符编码时发现的,不是专门针对UTF8支持的,但它似乎是相同的粗糙问题。

相关问题