【问题标题】:Issue in Updating the IP in DB更新数据库中的 IP 问题
【发布时间】:2015-10-12 18:36:48
【问题描述】:

我们在按照以下步骤将公司网站迁移到新网站时遇到了以下问题:

  1. 我们已启动新的 Amazon RDS 实例并将数据从旧数据库导入到新 RDS。
  2. 我们将网站指向新推出的 RDS
  3. 为 WordPress 站点分配了新的弹性 IP 地址,实例的 IP 发生了变化。
  4. 在数据库级别运行查询以更新新 IP

但即使在执行查询后,prod 站点仍然指向旧 IP。

修复:

  1. 我们以 .sql 格式进行了 DB 转储并进行了分析。我们发现旧 URL 仍然在 DB 中进行硬编码
  2. 所以我们通过用新 URL 替换旧 URL 来编辑 .sql 转储。并将编辑后的转储导入数据库。导入并重新启动后,应用程序开始正常工作。

有人可以告诉我(1)这种硬编码 IP 是否是 WP 中的一种常见做法,以及(2)有没有更好的方法来避免硬编码?

提前致谢!

【问题讨论】:

    标签: wordpress rds


    【解决方案1】:

    WordPress 通常不会在数据库中存储服务器 IP 地址,但它确实在许多地方存储了站点的完整 URL。

    听起来您必须使用 IP 地址来访问该网站,这意味着人们访问该网站是通过 http://xxx.xxx.xxx.xxx 而不是 http://www.example.com,这可以解释为什么 IP 地址存储在数据库中。

    迁移到新域名时,您必须搜索数据库并将旧域的所有实例替换为新域。最好use a tool like WP-CLI search-replace 执行此任务,因为如果您只是在文本编辑器中进行简单的查找和替换,它将说明可能会损坏的序列化数组数据。该工具还允许您跳过某些列,例如“guid”列,即使在迁移域时您也可能希望保留这些列。

    目前,没有“更好的方法”来避免在数据库中硬编码站点 URL,因为这是 WordPress 的默认行为。 You can read more in the WordPress handbook here,这解释了为什么绝对 URL 存储在数据库中。

    【讨论】:

    • 谢谢 Ben :) 它奏效了。 IP 是数据库中的硬代码。我们不得不手动更改它
    猜你喜欢
    • 2015-11-25
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 2021-07-07
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多