在新建的 VPS 实例上恢复快照后的网络配置

在新建的 VPS 实例上恢复快照后的网络配置

我有一个网站在 VPS 实例上启动并运行Vultr运行 Ubuntu 18.04LTS,一切都很好。我想在恢复会话中尝试实例的快照,以防系统出现问题。所以我创建了一个新的实例并按预期部署了该快照,但在将 DNS 更改为新 IP 地址后,我无法查看我的网站error establishing a database connection。因此,在这种情况下,恢复会话失败,没有实现其目标。我联系了支持团队,但他们只指出,我必须在快照恢复后更正新实例上的一些网络配置,但没有关于如何在 Ubuntu 18.04LTS 上执行此操作的具体说明。我咨询了他们的文档,但没有提到在 Ubuntu 180.04LTS 服务器中netplan替换的新网络设置。ifupdown

在此处输入图片描述

让我逐一查看文档,我注意到了以下几点:

  • 在我的新实例中,该/etc/udev/rules.d/70-persistent-net.rules文件是空的,里面什么都没有。
  • 当我检查内容时,发现/etc/network/interfaces里面没有 IP 地址,而是出现了这条注释掉的消息。

# 此系统上的 ifupdown 已被 netplan(5) 取代。请参阅 # /etc/netplan 了解当前配置。# 要在此系统上重新启用 ifupdown,您可以运行:# sudo apt install ifupdown

因此我检查了/etc/netplan设置,发现有两个文件:

01-netcfg.yaml,且为空。

另一个10-ens3.yaml文件里面有这个设置:

network:
version:2
renderer: networkd
ethernets:
ens3:
dhcp4: yes

因此,鉴于此,我对此设置完全不了解。我觉得它与新netplan系统无关。因此,如果您能帮助我在这种情况下正确配置网络以恢复我的实时网站,我将不胜感激。

答案1

@MichaelHampton 提供的提示促使我在设置 WordPress 端进行调试操作。是的,我的复制网站现在再次启动并运行,并在更改 DNS 后准备好公开。但是,我现在不打算这样做,因为我只是想研究这种方法,以便在我的系统发生问题时可以随时使用。顺便说一句,这为我开辟了如何在不同的VPS 服务器。是的,有人可能会认为它的缺点是你必须为该服务器付费,但没关系,这将促使我尽快进行开发,只要我能负担得起新服务器的费用(每小时支付相对便宜)。另一个优点是,我可以其他的在进入生产站点之前,访问开发站点并征求他们的意见。
我所要做的就是告诉他们新的 IP 地址和域名,当然,他们会以/etc/hosts 这种方式在他们的机器上进行相应的编辑: [new-ip-address-no-brackets-pls] example.com www.example.com 他们可以清除浏览器上的浏览数据,然后从当前实时站点的快照中查看部署的开发站点,而所有其他宇宙都以原始状态查看同一站点,这对于网站开发来说是多么美妙的设置啊!

这绝对是我开发时首选的方法。我不知道还有什么方法可以轻松超越这个,如果有人愿意分享一些,我会很高兴。

解决方案

只需将找到的“IP 地址”更改为新实例上新指定的 IP 地址即可:-wp-config.php

  • /etc/mysql/my.cnf两个地点hostbind-address

  • /etc/ee/ee.conf但这可能不需要

  • 现在最棘手的部分是编辑 MySQL,我使用的是 MariaDB。首先,即使完成了上述所有替换,您也无法像以前一样登录到 mysql,无论如何我都不会被授予在此新服务器上登录 mysql 的权限(不知道为什么)。因此,一种解决方法是作为 localhost 登录,这样可以节省场景:mysql -u root -h localhost -p

然后您必须登录:登录后您可以对所有数据库进行替换,users@old-ip-address例如user@new-ip-address

mysql> RENAME USER root@[old-ip-add-without-square-brackets] TO root@[new-ip-address-again-without-square-brackets];

确保替换所有用户的 IP 地址,最后执行以下操作:

mysql> FLUSH PRIVILEGES;然后我就可以查看我新恢复的实例及其所有站点。如果您有多个站点,显然您必须在相应的文件中更改 IP 地址wp-config.php,下面的所有其他替换/etc/都集中在服务器上,与站点无关。

相关内容