WordPress迁移 - 导入MySQL转储的麻烦

时间:2017-07-03 20:43:52

标签: php mysql wordpress migrate

我目前正在将网站从一台服务器移动到另一台服务器。在此过程中,我正在设置新的开发环境,以帮助测试我们在移动网站时可能遇到的任何问题。

我已经移动了一个网站,解决了所有问题。我在最新的两个网站上遇到了一些问题。

我的工作流程通常是: 1)出口 2)通过查找/替换编辑Sublime Text中的dev URL 3)导入到DB

导入MySQL转储首先给了我一个错误,例如 “XXX行错误:未知命令YYY” 在一个这样的场景中,这似乎是由某个未知字符的编码问题(STX)引起的。

我可以通过使用MySQL标志来消除此类错误,例如: -default-character-set = latin1用于mysqldump,不使用--default-character-set = utf8用于导入。

这让我在这个过程中更进一步,因为事情似乎有效,除了没有图像显示在媒体(只是default.png)的拇指。我已经验证了服务器上存在的文件并检查了权限。单击Media中的图像时,我可以复制/粘贴URL,并在浏览器中正确显示图像。

数据未完全传输的另一个示例是,不会保留用于页面的模板。

此时我对如何正确导出/格式化/导入MySQL转储感到茫然。我甚至尝试过WordPress修复数据库实用程序而不会对结果进行任何更改。

1 个答案:

答案 0 :(得分:0)

0。 Jones评论中提到了一个名为Duplicator的插件。鉴于我们的情况,我没有利用这个,所以我不能说它是否会。如果这样可以正常工作,我会想象这是大多数人的理想解决方案。

我使用的解决方案很简单,但对于那些无法访问或不熟悉MySQL的人来说可能无效。

步骤如下:

  1. 通过“mysqldump -u {user} -p {databaseName}>导出 {filename.sql}
  2. 像往常一样导入(没有问题)
  3. 登录导入完成的新MySQL数据库,使用该数据库并运行以下查询:

    UPDATE wp_options SET option_value = replace(option_value,'{oldURL}','{newURL}');

    UPDATE wp_posts SET guid = replace(guid,'{oldURL}','{newURL}');

    更新wp_posts SET post_content = replace(post_content,'{oldURL}','{newURL}');

    更新wp_postmeta SET meta_value = replace(meta_value,'{oldURL}','{newURL}');

  4. 可能需要针对“http://oldwebsite.com”,“http://www.oldwebsite.com”,“https://oldwebsite.com”和“https://www.oldwebsite.com”的每个变体运行这四个查询。