我有两个相同的MySQL数据库,一个在内部服务器中,另一个在网络托管服务器中。我想每天使用内部服务器上的数据库更新Web主机上的数据库。有没有办法自动执行此过程,又该如何手动执行呢?如果要手动执行此操作,是否需要我在内部服务器上获取数据库的SQL转储,然后将其导入Web主机上的数据库中?有人可以请教。
我有两个相同的MySQL数据库,一个在内部服务器中,另一个在网络托管服务器中。我想每天使用内部服务器上的数据库更新Web主机上的数据库。有没有办法自动执行此过程,又该如何手动执行呢?如果要手动执行此操作,是否需要我在内部服务器上获取数据库的SQL转储,然后将其导入Web主机上的数据库中?有人可以请教。
Answers:
您有几种选择:
在服务器之间设置MySQL复制。您的内部服务器可以充当主服务器,而Web主机服务器可以充当从服务器。在主服务器上执行的所有更新都将立即复制到从服务器(假定连接正常)。这很可能是最简单,最有效的选择。要使用复制,需要从Web主机通过网络访问内部数据库。
您可以在此处阅读有关复制的更多信息。
每天,您都可以在内部服务器上执行mysqldump,将转储文件上传到Web主机,然后导入数据。由于这是一个完整的转储,因此如果您有一个非常大的数据库,这可能不可行。如果您愿意,可以将此程序编写为脚本,以避免手动进行。
您可以在内部服务器上设置二进制日志记录。然后,您可以将二进制日志发送到Web主机,并将它们应用于数据库,从而有效地将当天发生的所有事务处理到Web服务器。实际上,无论如何,这就是复制会发生的情况,因此您几乎总是选择复制设置而不是使用此选项。
如果两个数据库之间没有连接,则每天采取mysqldumps将是最简单的途径。
您还可以使用symmetricDS之类的选项来帮助同步两个数据库。这样,您就可以选择需要同步的表,这样可以节省Internet带宽。当两个位置之间缺乏连通性时,这也将适用。
如何使用MariaDB设置数据库复制: https : //www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/