【问题标题】:How to sync mysql local db with AWS cloud database如何将 mysql 本地数据库与 AWS 云数据库同步
【发布时间】:2020-08-19 00:48:38
【问题描述】:

我正在开展我的项目:癌症数据预测的云工具。但我不知道如何将 MySQL 本地数据库与 AWS 云数据库同步。 我在我的 Mac 系统上开发了一个带有 MAMP 堆栈的网站,该网站是一个患者管理系统,可用于插入、查询、更新或删除患者数据。我还设置了一个具有 LAMP 堆栈的 AWS EC2 实例。要求是:本地数据库中的任何更改(包括插入、查询、更新或删除)都需要与云数据库同步,这意味着任何更改都可以触发 AWS MySQL 数据库中的相应更改。有人可以帮忙吗?最好的解决方案是什么?太感谢了!

【问题讨论】:

    标签: php mysql amazon-ec2


    【解决方案1】:

    您有几个选项,因为您在 EC2 上托管,所以我会查看这些选项。如果您托管在 AWS RDS 或其他东西上而不是您自己的 EC2 上,这会有所改变。

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

    您可以阅读有关复制的更多信息here

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

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

    如果两个数据库之间没有连接,每天做mysqldumps将是最简单的方法。

    【讨论】:

    • 谢谢,@Benloper 我尝试通过方法 1 实现。但我发现我的本地服务器没有公共 IP。因此,也许我必须设置另一个具有公共 IP 的云服务器。
    • 是的,你可以建立一个公共的mysql RDS数据库,然后代理进去。您可能希望将 MySQLWorkbench 之类的东西同步到它,以便您可以更轻松地移动。
    猜你喜欢
    • 1970-01-01
    • 2019-12-24
    • 2011-04-25
    • 2023-03-17
    • 2014-06-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2016-07-06
    相关资源
    最近更新 更多