mysql数据库动态ip上的多主复制

时间:2013-12-17 09:48:55

标签: php mysql database replication database-replication

情况:

使用在2个站点上运行的mysql数据库的Php应用程序

  1. online -static ip X.X.X.X
  2. localhost(大部分时间不在线且动态ip)
  3. 应用流量通常很低< 10个用户。

    我需要的是,无论何时对在线数据库进行更改,此更改都会推送到localhost-如果在线或在其可用时 - 反之亦然(在本地完成的任何更改都会在线上传到数据库)是在线连接)。

    可以通过mysql设置这样的复制吗?或者我是否需要编写一个ping主服务器的自定义PHP及其可用的

    非常感谢:)。

4 个答案:

答案 0 :(得分:3)

是的,您可以通过复制执行此操作。只需选择您想成为主服务器的服务器,然后让第二个服务器将其所有更改发送到主服务器,然后主服务器可以将其更改发回。

设置复制可能有点令人生畏,但一旦启动并运行它。 http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html

答案 1 :(得分:1)

让我们先分析一下你的问题:

  1. 使用动态IP 访问MySQL的问题。 这很容易。一旦您在具有不断变化的IP的服务器上安装MySQL,您可以做的是转到NO-IP,DynDNS或任何其他动态DNS服务并免费注册。一旦您向他们注册,您就可以获得操作系统的客户端。安装它然后您可以使用域名访问您的MySQL服务器。

    实施例: 您无需访问127.0.0.1的服务器,而是可以将其作为mysql-server.easynet.net等访问。

  2. 现在是你问题的第二部分,虽然很复杂但是如何做可用和懒惰的复制。 这比前一步骤相对复杂一些。但是,实际发生的是您必须选择复制方案。基本上你在这里寻找的是MASTER-MASTER复制,因为你在两者 MySQL服务器上发生了可能性的变化。因此,更新需要双向,这就是这种复制方案的作用。怎么做?好吧,我提供的链接更容易理解:

  3. Master-Master Replication

    Step-by-step MySQL Master Replication

    我希望这会缓解你的困境并回答你的问题! 干杯!

答案 2 :(得分:0)

当然,你可以 您需要同时将两个MySQL服务器设置为主服务器和从服务器 将在线服务器配置为Master,将localhost服务器配置为slave,并且一旦复制就可以 将localhost配置为Master,将在线服务器配置为slave 我已经在两台服务器上做过了。

关于本地主机上的动态IP,您可以使用任何动态IP服务,例如:no-ip,并使用dns名称而不是IP。

答案 3 :(得分:0)

Here's a post i've written(法语,但你可以从中获取配置片段),用于设置带有负载均衡器(mysql代理)的MASTER-MASTER复制,以平衡两个节点之间的SQL查询。