2017-07-03 70 views
0

我目前正在将网站从一台服务器迁移到另一台服务器。在这样做的过程中,我设置了新的开发环境来帮助测试移动网站时可能遇到的任何问题。WordPress迁移 - 导入MySQL转储时遇到问题

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

我的工作流程一般为: 1)出口 2)编辑通过查找到dev URL在崇高的文本/替换 3)导入到DB

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

我可以通过使用MySQL标志取消这样的错误,例如: -default-character-set = latin1用于mysqldump,而不使用--default-character-set = utf8与导入。

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

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

在这一点上,我对如何正确导出/格式化/导入MySQL转储感到迷茫。我甚至尝试过使用WordPress修复数据库实用程序而不改变结果。

+0

有WordPress插件来处理网站迁移。一个很好的例子是https://wordpress.org/plugins/duplicator/上的Duplicator。它处理许多迁移的细节。 –

回答

0

O. Jones评论提到了一个名为Duplicator的插件。根据我们的情况,我没有利用这一点,所以我不能说是否会。如果这可以正常工作,我会设想最理想的解决方案。

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

的步骤是:通过“的mysqldump -u {用户} -p {的databaseName}> {文件名

  1. 导出。SQL}
  2. 导入像往常一样(没有问题)
  3. 登录到新的MySQL数据库,其中进口完成,使用该数据库,并运行以下查询:SET请将option_value

    UPDATE wp_options =替换(请将option_value, '{oldURL}','{newURL}');

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

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

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

这四个查询可能需要为 “http://oldwebsite.com”, “http://www.oldwebsite.com” 每个变化中运行, “https://oldwebsite.com” 和 “https://www.oldwebsite.com”。