背景:我下载了WordPress站点数据库的一个*.sql备份,并用一个新的前缀替换了旧数据库表前缀的所有实例(例如,从默认的wp_替换为类似的asdfghjkl_)。
我刚刚了解到WordPress在数据库中使用了序列化的PHP字符串,我所做的将破坏序列化字符串长度的完整性。
问题是,在我了解到这一点之前,我删除了备份文件(因为我的网站仍然运行良好),并安装了许多插件。所以,我无法回头,因此我想知道两件事:
如果可能的话,我怎样才能解决这个问题?
这会导致什么样的问题?
This article指出,例如,Wordpress博客可能会丢失其设置和小工具。但这似乎并没有发生在我身上,因为我博客的所有设置都是完整的。但我不知道内部会发生什么破裂,也不知道将来会出现什么问题。因此,这个问题。)

最佳答案

访问此页面:http://unserialize.onlinephpfunctions.com/
在该页上,您应该看到这个示例序列化字符串:a:1:{s:4:"Test";s:17:"unserialize here!";}。拿一块——s:4:"Test";。这意味着“字符串”,4个字符,然后是实际字符串。我很确定您所做的操作导致数字字符计数与字符串不同步。在上面提到的站点上使用该工具,例如,如果将“test”更改为“tes”,您将看到一个错误。
您需要做的是让这些字符计数与您的新字符串匹配。如果您没有破坏任何其他编码——删除了冒号或其他东西——那么应该可以解决这个问题。

关于mysql - 修复由于在文本编辑器中编辑MySQL数据库而导致的序列化数据损坏?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15138893/

10-12 17:59