【问题标题】:How to update data from localhost MySQL server to remote MySQL server如何将数据从本地 MySQL 服务器更新到远程 MySQL 服务器
【发布时间】:2010-02-10 06:15:04
【问题描述】:

我想将本地 MySQL 服务器上发生的每个操作(插入、更新、删除)的数据更新到远程 MySQL 服务器。我该怎么做?

【问题讨论】:

    标签: php mysql database-replication


    【解决方案1】:

    启用database replication。出于性能原因频繁刷新不是一个好主意,但也许这是一个可以接受的折衷方案?

    【讨论】:

      【解决方案2】:

      你不能用Triggers吗?

      22.5.5:触发器是否可以更新远程服务器上的表? 是的。远程服务器上的表可以 使用 FEDERATED 存储进行更新 引擎。

      发件人:http://dev.mysql.com/doc/refman/5.0/en/faqs-triggers.html#qandaitem-22-5-1-5

      我不建议这样做,因为您所做的每一个小改动都会消耗带宽。您可以改为尝试安排的作业。

      【讨论】:

        【解决方案3】:

        这是一个使用 git 服务器的简单而安全的解决方案,如果两个 db_table 没有太大变化并且不必始终相同,则可以正常工作。

        1. 在您的 git 服务器(GitHub、Bitbucket 等)上创建存储库
        2. 将存储库克隆到您的两台服务器

        在您要从中导出的服务器上运行这些终端命令

        $ cd /my/repository/path
        
        $ mysqldump -h localhost -u User_Id -pPassword DB_name Table_Name > Table_Name.sql
        
        $ git add .
        $ git commit -m "Table Update"
        $ git push https://git_server/repository/name
        

        db 表现在在 git 服务器上。

        在您要导入的服务器上

        $ cd /my/repository/path
        $ git pull https://git_server/repository/name
        $ mysql -h localhost -u User_Id -pPassword DB_name < Table_Name.sql
        

        【讨论】:

        • 特别感谢我的同事 Peter F,他提出了这个想法。我们在生产环境中自行运行此解决方案。这样,我们总是有一个 db_server 准备好在必要时承担负载。
        • 我建议不要长期使用这种方法。它不会缩放;完成时间太长;并且与复制相比,它没有任何好处。
        • 我们一直在寻找这些好处:数据库可以位于不同的位置,彼此完全独立,无需与防火墙交互。版本处理也很好,如果数据库损坏,我们可以使用旧版本启动。所有场景和需求都不同,这个解决方案有点开箱即用。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-06-25
        • 1970-01-01
        • 2012-05-04
        • 1970-01-01
        • 2013-08-19
        • 2011-10-05
        • 1970-01-01
        相关资源
        最近更新 更多