mysql - 修复因在文本编辑器中编辑 MySQL 数据库而损坏的序列化数据?

标签 mysql wordpress mysqldump mariadb

背景:我下载了我的 WordPress 站点数据库的 *.sql 备份,并将旧数据库表前缀的所有实例替换为新实例(例如,从默认 wp_asdfghjkl_)。

我刚刚了解到 WordPress 在数据库中使用了序列化的 PHP 字符串,而我所做的事情会破坏序列化字符串长度的完整性。

问题是,我在得知这一点之前删除了备份文件(因为我的网站仍然运行良好),并从那时起安装了许多插件。因此,我无法恢复原状,因此我想知道两件事:

  1. 如果可能的话,我该如何解决这个问题?

  2. 这会导致什么样的问题?

( This article 指出,例如,WordPress 博客可能会丢失其设置和小部件。但这似乎并没有发生在我身上,因为我博客的所有设置都完好无损。但我不知道至于内部可能会损坏什么,或者将来会造成什么问题。因此提出了这个问题。)

最佳答案

访问此页面:http://unserialize.onlinephpfunctions.com/

在该页面上,您应该会看到以下示例序列化字符串:a:1:{s:4:"Test";s:17:"unserialize here!";}。拿一 block ——s:4:"Test";。这意味着“字符串”,4 个字符,然后是实际的字符串。我很确定您所做的事情导致数字字符计数与字符串不同步。使用上述网站上的工具,例如,如果将“Test”更改为“Tes”,您会看到出现错误。

您需要做的是让这些字符数与您的新字符串匹配。如果您没有损坏任何其他编码(删除冒号或其他内容),那么应该可以解决问题。

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

相关文章:

mysql - 关于建筑物和平面图的数据库设计查询

Git、Beanstalk、WordPress 终极部署方式

php - 重新定位 WooCommerce 文件页面中的产品链接

ruby-on-rails-3 - mysqldump 阻塞 Ruby on Rails

MySQL 变量值错误(SELECT INTO)

php - Laravel 中的简单 MySQL 选择查询问题

php - 使用 mysqli 保存时间戳

html - 下拉菜单间距的联系表格 7 问题

batch-file - 使用日期和时间作为文件名生成备份文件

ssh - MySQLDump 从通过 SSH 连接的远程服务器到本地机器