我有两个相同的MySQL数据库,一个在内部服务器中,另一个在网络托管服务器中。我想每天使用内部服务器上的数据库更新Web主机上的数据库。有没有办法自动执行此过程,又该如何手动执行呢?如果要手动执行此操作,是否需要我在内部服务器上获取数据库的SQL转储,然后将其导入Web主机上的数据库中?有人可以请教吗。

评论

您可以参考在StackOverflowstackoverflow.com/questions/52583/…
中发布的现有答案。
关于#2,如果我从内部进行完全转储并在生产中导入它将覆盖在线数据库,我的意思是我在数据库网络上托管了在线买家,并且我想将内部数据库购买迁移到实时状态,请您说明一下BTW如果两者之间都保留了相同的ID,就会碰巧出现两者之间的自动起泡剂,这将是一团糟!

#1 楼

您有几个选择:


在服务器之间设置MySQL复制。您的内部服务器可以充当主服务器,而Web主机服务器可以充当从服务器。在主服务器上执行的所有更新都将立即复制到从服务器(假定连接正常)。这很可能是最简单,最有效的选择。要使用复制,需要从Web主机通过网络访问内部数据库。
您可以在此处阅读有关复制的更多信息。


每天,您都可以执行内部服务器上的mysqldump,将转储文件上传到Web主机,然后导入数据。由于这是一个完整的转储,因此如果您有一个非常大的数据库,这可能不可行。如果愿意,可以将此程序编写为脚本,以避免手动进行操作。


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


如果两个数据库之间没有连接,则采取每天使用mysqldumps是最简单的方法。

评论


关于#2,如果我从内部进行完全转储并在生产中导入它将覆盖在线数据库,我的意思是我在数据库网络上托管了在线买家,并且我想将内部数据库购买迁移到实时状态,请您说明一下BTW将会做什么如果两者之间都保留了相同的ID,则会在两者之间发生自动碰撞,这将是一团糟!

– shareef
18年5月6日在16:02



#2 楼

您还可以使用symmetricDS之类的选项来帮助同步两个数据库。这样,您就可以选择需要同步的表,这样可以节省Internet带宽。这也适用于两个位置之间缺乏连接的情况。

#3 楼

如何使用MariaDB设置数据库复制:
https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/

评论


欢迎使用DBA.SE。感谢您的贡献/参与。但是,社区确实希望发布的答案具有一定的质量。请考虑阅读以下文章:如何写一个好的答案? (帮助中心)在“回答问题”部分中,有一句简短的句子:鼓励使用外部资源的链接,但是请在链接周围添加上下文,以便您的其他用户可以知道它的含义以及为什么存在

– John K. N.
18-09-10在6:26

#4 楼

您可以使用Navicat。它主要是数据库管理器,但具有数据传输和数据同步功能以及调度程序,因此您可以实现自动化。它不是免费的,但有30个全功能试用版。