更新数据库中的IP问题

时间:2015-07-22 18:02:54

标签: wordpress rds

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

  1. 我们推出了新的Amazon RDS实例,并将旧数据库中的数据导入新的RDS。
  2. 我们将网站指向新推出的RDS
  3. 为WordPress网站分配了新的弹性IP地址,实例的IP也发生了变化。
  4. 在数据库级别更新查询以更新新IP
  5. 但即使在执行查询后,prod站点仍指向旧IP。

    修正:

    1. 我们以.sql格式进行了数据库转储并进行了分析。我们发现旧的URL仍在DB
    2. 中进行了硬编码
    3. 因此我们通过用新URL替换旧URL来编辑.sql转储。并将已编辑的转储导入DB。导入并重新启动后,应用程序开始正常工作。
    4. 有人可以告诉我(1)这种硬编码IP是否是WP中的常见做法;(2)有没有更好的方法来避免硬编码?

      提前致谢!

1 个答案:

答案 0 :(得分:0)

WordPress通常不会在数据库中存储服务器IP地址,但 会在很多地方将完整的URL存储到网站。

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

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

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