WordPress 迁移 - 导入 MySQL 转储时出现问题

WordPress Migration - Trouble with Import of MySQL Dump

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

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

我的工作流程通常是: 1)出口 2) 通过 find/replace 在 Sublime Text 中编辑为 dev URL 3) 导入数据库

首先导入 MySQL 转储给我一个错误,例如 "ERROR at line XXX: unknown command YYY" 在一种情况下,这似乎是由某个未知字符的编码问题 (STX) 引起的。

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

这让我在这个过程中走得更远,因为一切似乎都在进行中,除了在媒体(只有 default.png)中没有显示拇指的图像。我已验证文件存在于服务器上并检查了权限。在媒体中单击图像时,我可以 copy/paste URL 并且图像在浏览器中正确显示。

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

此时我不知道如何正确地 export/format/import MySQL 转储。我什至尝试过 WordPress 修复数据库实用程序,结果没有任何变化。

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

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

步骤是:

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

    更新 wp_options 设置 option_value = 替换(option_value, '{oldURL}', '{newURL}');

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

    更新 wp_posts 设置 post_content = 替换(post_content, '{oldURL}', '{newURL}');

    更新 wp_postmeta 设置 meta_value = 替换(meta_value, '{oldURL}', '{newURL}');

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