我拥有的 :

  • 一台带有 MySQL 5.6 Server 实例的 Windows 计算机。
  • 两个名为 test 和 test2 的数据库。
  • Test 数据库有一个表称为 activity 有柱子 idclass

我需要的 :

  • 复制 test.activity 表到 test2 数据库的条件是 Test.activity.class = 'B'.

我知道如何在不同的服务器中复制。但不适用于不同数据库中的同一服务器。我已经检查过 这个链接 ,但它没有提供足够的信息。

有帮助吗?

解决方案

这根本就不是一个正常的情况!复制期间不能更改数据库,并且主/从不能具有相同的服务器 ID。如果您必须这样做,我建议您在第一个数据库上设置一些触发器,以针对第二个数据库复制插入/更新命令。

其他提示

因为它在同一台服务器上,为什么不使用触发器呢?

如果您只想复制数据,您可以在更新或插入时添加触发器或在两者上添加任何您需要的触发器。这样您就可以轻松地使用您的条件。主/从复制对于不同的服务器来说会更好。

你可以看 这里 对于 mysql 触发器示例。和 这里 是您的案例的样本。

如果我确实正确理解了您的需求,您可以在一台服务器(操作系统)上拥有 2 个 MySQL 实例,然后您可以将其中一个配置为主服务器,另一个配置为从服务器。您必须创建不同的 my.conf,我们将其命名为 my1.conf 和 my2.conf,每个文件的端口号、套接字路径、日志错误路径和其他一些参数都应该不同。通过这种方法,您将运行 2 个具有不同配置的 MySQL 守护进程。如需完整文档,请访问 https://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html .

尝试 mysql 沙箱,它可能会解决你的问题(http://mysqlsandbox.net/)

因为:

测试的复制。活性表到test2数据库具有test.activity.class ='b'的条件。

本机复制没有帮助,在这种情况下,最好将两个数据库保留在同一服务器上,并在主数据库上安装 INSER/UPDATE/DELETE 触发器,这将检查条件并在第二个数据库上进行直接更改。

这是最简单的方法。还有很多其他的可能。

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top