使用sqlyog工具同步两个相同结构的数据库之间的数据

compare two database data

因为工作上遇到 同一个项目被部署到不同服务器上,原项目(后统称"源")在运行中,后部署的项目(后统称"目标")也在运行中。需要源的mysql数据同步到目标的mysql上。

我的情况是数据库的表结构是一样的,是数据需要同步。

在 sqlyog 也可以通过ssh通道来连接mysql(和navicat for mysql用法一样).


下面是我在网上找的sqlyog软件并使用的,如果你懒得去再找,可以尝试下面的分享连接来下载使用

链接: https://pan.baidu.com/s/1nZh1-EFqnZSMYL_k1v3Twg 提取码: jcbu


前提: 两个有相同表结构的数据库的备份sql都导入到本地的mysql中

目标: 同步并生成对应的sql脚本,可以将这些sql脚本在 目标服务器的mysql中执行对比之后的sql脚本,达到同步数据的效果

我的操作步骤是: sqlyog的菜单栏 高级工具 -> 数据库S 同步向导

  1. 弹出 向导的窗口,默认是开始新工作,点击下一步按钮
  2. 选择源和目标的数据库,点击下一步按钮
  3. 进入数据同步高级选项,我选的是单向同步并勾选不要在目标删除额外的行,点击下一步按钮
  4. 进入选择想要同步的表,我选的是在数据库中同步所有表,点击下一步按钮
  5. 进入你要如何执行同步?页,因为我是在本地导入了2个数据库,需要将同步的sql导入到远程上,所以选择的是同步和生成脚本,然后在给文件名 选择存放sql的路径,点击下一步按钮
  6. 进入错误处理页,我是全不勾选,点击下一步按钮
  7. 进入在定期间隔发送查询结果,我选择的是立即运行,点击下一步按钮
  8. 进入到进行处理 同步操作了,等待执行完成,执行完成之后,下一步按钮是启用的了,点击下一步按钮之后,会进入向导成功完成页,点击完成按钮或者当前窗口的关闭按钮就会关闭窗口了。

然后打开第5步保存的sql文件,看里面是否是有 INSERT或者UPDATE 语句,如果有,将所有语句复制到远程的 phpmyadmin中的目标数据库中,执行对应的sql语句,就完成了数据同步操作了。

References

  1. Compare two MySQL databases [closed]