我遇到了一个很大的难题,不知道如何解决。我需要将一些表从 MySQL DB(从属)复制到 MySQL DB(主)。举个例子:
MySQL DB (master)
table1
table2
table3
MySQL DB (slave1)
table1
table2
table3
MySQL DB (slave2)
table1
table2
table3
MySQL DB(主服务器)应每天将表 1 的内容复制到 MySQL DB(从服务器 1、从服务器 2),MySQL DB(从服务器 1、从服务器 2)应每天将表 2 和表 3 的内容复制到 MySQL DB(主服务器)。表是相同的,但主服务器和从服务器之间的数据可能会发生变化。我对此有几个问题:
- 有人知道这个解决方案吗?我的意思是我该如何实现它?
- MySQL主机不在同一个网络那这边该如何处理呢?
- 因为表具有相同的结构,如果主表 1 和从表 1 中的 ID 列具有相同的值,会发生什么情况?会被覆盖吗?会被添加为新记录吗?
- 如何保持诚信?
- 如果从服务器修改了之前与主服务器同步的记录会发生什么?
MySQL 主机大多为 Windows 7 PC
答案1
MySQL 复制并非如此。如果您允许在复制从属服务器上写入,那么您的数据库很可能会随着时间的推移变得不一致。当然,多主复制是可能的,但您/您的软件必须非常小心,不要做任何可能导致未来不一致的事情。
我建议不要这样做。要么坚持使用一个主服务器,该主服务器获取所有更改数据的查询,并将读取查询发送到其中一个从服务器,要么设置 MySQL 群集。