一尘不染

同步两个不同位置的两个 MySQL 数据库

mysql

我有两个相同的 MySQL 数据库,一个在内部服务器中,另一个在 Web 托管服务器中。我想每天用内部服务器上的数据库更新网络主机上的数据库。有没有办法使这个过程自动化,我怎么能手动做到这一点?如果我要手动进行,是否需要我在内部服务器上获取数据库的 SQL 转储,然后将其导入 Web 主机上的数据库中?有人可以请教。


阅读 89

收藏
2022-10-11

共1个答案

一尘不染

你有几个选择:

  1. 在服务器之间设置 MySQL 复制。您的内部服务器可以充当主服务器,而 Web 主机服务器可以充当从服务器。在主服务器上执行的任何更新都将立即复制到从服务器(假设连接正常)。这很可能是最容易和最有效的选择。要使用复制,您的内部数据库需要可从 Web 主机通过网络访问。

您可以在此处阅读有关复制的更多信息。

  1. 每天,您可以在内部服务器上执行一次 mysqldump,将转储文件上传到 web 主机,并导入数据。由于这是一个完整的转储,如果您有一个非常大的数据库,这可能不可行。如果您愿意,这个过程可能会被编写脚本以避免手动执行。

  2. 您可以在内部服务器上设置二进制日志记录。然后,您可以将二进制日志发送到 Web 主机并将它们应用到数据库,从而有效地将当天发生的所有事务播放到 Web 服务器。实际上,无论如何复制都会发生这种情况,因此您几乎总是使用复制设置而不是此选项。

如果两个数据库之间没有连接,那么每天进行 mysqldumps 将是最简单的路径。

2022-10-11