我有的 :
- 一台带有 MySQL 5.6 Server 实例的 Windows 机器。
- 两个数据库名为 test 和 test2。
Test
数据库有一个名为activity
列的表id
和class
我需要的 :
test.activity
将表复制到test2
数据库的条件是Test.activity.class = 'B'
.
我知道如何在不同的服务器上进行复制。但不适用于不同数据库中的同一服务器。我已经检查了这个链接,但它没有提供足够的信息。
我有的 :
Test
数据库有一个名为activity
列的表id
和class
我需要的 :
test.activity
将表复制到test2
数据库的条件是Test.activity.class = 'B'
.我知道如何在不同的服务器上进行复制。但不适用于不同数据库中的同一服务器。我已经检查了这个链接,但它没有提供足够的信息。
如果我确实正确理解了您的需求,您可以在一台服务器 (OS) 上拥有 2 个 MySQL 实例,然后您可以将其中一个配置为 Master,另一个配置为 Slave。您必须创建不同的 my.conf,我们将其命名为 my1.conf 和 my2.conf,每个端口号和套接字路径以及日志错误路径和其他一些参数都应该不同。使用这种方法,您将运行 2 个具有不同配置的 MySQL 守护程序。如需完整文档,请访问https://dev.mysql.com/doc/refman/5.1/en/multiple-servers.html。
因为它在同一台服务器上,为什么不为此使用触发器?
如果您只想复制数据,您可以在更新或插入时添加触发器,或者两者兼而有之。这样你就可以轻松地使用你的条件。主/从复制对于不同的服务器会更好。
您可以在此处查找 mysql 触发器示例。这是您的案例的示例。
那根本就不是正常的情况!复制期间不能更改数据库,主/从不能具有相同的服务器 ID。我建议您是否必须这样做,然后在第一个数据库上设置一些触发器,以针对第二个数据库复制插入/更新命令。
试试mysql沙箱,它可能会解决你的问题(http://mysqlsandbox.net/)
因为:
本机复制没有帮助,在这种情况下,最好将两个数据库留在同一台服务器上,只需在主数据库上安装 INSER/UPDATE/DELETE 触发器,这将检查条件并在第二个数据库上进行直接更改。
这是最简单的方法。还有很多其他的可能。