我目前正在将网站从一台服务器移动到另一台服务器。在此过程中,我正在设置新的开发环境,以帮助测试我们在移动网站时可能遇到的任何问题。
我已经移动了一个网站,解决了所有问题。我在最新的两个网站上遇到了一些问题。
我的工作流程通常是: 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修复数据库实用程序而不会对结果进行任何更改。
答案 0 :(得分:0)
0。 Jones评论中提到了一个名为Duplicator的插件。鉴于我们的情况,我没有利用这个,所以我不能说它是否会。如果这样可以正常工作,我会想象这是大多数人的理想解决方案。
我使用的解决方案很简单,但对于那些无法访问或不熟悉MySQL的人来说可能无效。
步骤如下:
登录导入完成的新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}');
可能需要针对“http://oldwebsite.com”,“http://www.oldwebsite.com”,“https://oldwebsite.com”和“https://www.oldwebsite.com”的每个变体运行这四个查询。