mySQL表同步

时间:2011-03-28 16:21:40

标签: mysql navicat

我正在寻找有关从2个不同数据库同步mySQL表(myISAM)的最佳方法的建议。

目前我们使用Navicat将表从生产服务器同步到我们的测试服务器,但我们遇到了很多问题。几乎每天我们都在桌面上遇到同步失败。

我们在很多时候都会收到错误,更不用说Navicat将我们的电子邮件与成功和不成功的同步一起发送(无论如何只接收不成功的同步?)。我也知道无论如何改变表都会导致同步失败。因此,无论如何必须先对主表进行更改(这是有道理的,但有没有办法解决这个问题?)。

- [同步]已完成 - 未成功同步:列表索引超出范围(0)

有没有理由不使用Navicat同步?我的老板建议使用mySQL复制,但我首先关注的是找到为什么我们有这么多问题,因为我们似乎只是在滥用同步,从而给我们带来了所有这些问题。

感谢。

1 个答案:

答案 0 :(得分:0)

  

将表从我们的生产服务器同步到我们的测试服务器

听起来您正试图在测试环境中复制生产环境,对吗?

在这种情况下要遵循的常见模式是using a tool like mysqldump来创建整个数据库的备份,然后将备份导入测试环境。通过执行完整备份和还原,您不仅可以确保至少有一个已知可用的备份方法,还可以确保测试数据库永远不会包含同步的修改工具可能会错过。 (同步工具通常需要每个表上的主键或唯一键才能有效运行。)

备份和重新导入过程应该是您自动化的简单方法。在我的工作场所,我们每晚都会执行基于mysqldump的数据库转储,并在第二天早上对每个开发人员的开发环境个人副本执行可选导入。