也许我错了,但我很确定,前段时间当我在寻找使用 Dropbox 同步我的 MySQL 数据库的方法时,我被告知由于 MySQL 的工作方式,这是不可能的。
但我最近才偶然发现这个答案,这似乎表明只需使用符号链接即可在 Dropbox 上同步 MySQL 数据库。这似乎太容易了,以至于难以置信,因为我认为我之前曾被建议不要这样做。
所以我的第一个问题是,上面链接的答案是否适用于我的情况?就我的情况而言,我只想在两台计算机(我的台式机和笔记本电脑)之间同步一些 MySQL 数据库,并且只有我一个人可以访问它们。这些数据库用于本地测试的网站。
我的下一个问题是,如果我的笔记本电脑爆炸了,我换了一台新的,会发生什么?我可以直接符号链接到 Dropbox 上的数据库,然后就可以继续使用吗?这种方法可以作为有效的备份工具吗?如果出于某种原因我想添加第三台电脑,我可以直接符号链接它然后就可以继续使用吗?
答案1
抱歉...没那么容易。
要理解为什么这不起作用,您必须明白的是,当 MySQL Server 运行时,它假设(这里有一些不重要的有限例外)没有其他东西会修改其文件,并且它在内存中维护一些有关文件状态的内部概念,它假设这些概念不会与文件不一致。如果文件通过某种同步变得不一致,那么您手中的数据库本质上就是损坏的。
当 MySQL 服务器正常关闭时,它会将文件保留在适当的状态,以便它本身(或具有足够相同配置的 MySQL 服务器的另一个副本)可以打开文件并开始运行……但在服务器正常关闭之后仅有的事实证明这是真的。
同步两个 MySQL 服务器实例的唯一方法是复制全部两个服务器都处于停止状态,并且只能在一个方向上传输文件。
同样的警告也适用于 MariaDB 和 Percona Server。