2019独角兽企业重金招聘Python工程师标准>>>

mysqldiff是mysql官方推荐的库对比工具,MySQL Utilities中的一个脚本。可以比对两个库中缺少的表,相同的表缺少的字段。

1,下载mysqldiff

下载地址:http://downloads.mysql.com/archives/utilities/

2,下载mysql-connector(python),否则执行会报错。因为这个插件是通过python连接器连接的。

下载地址:https://dev.mysql.com/downloads/connector/python/

3,命令模板

mysqldiff --server1=user:pass@host:port:socket --server2=user:pass@host:port:socket db1.object1:db2.object1 db3:db4

这里讲的是两种用法。可以直接对比库,db3:db4 ,也可以对比表 db1.table1:db2.table2

  • --server1:配置server1的连接。
  • --server2:配置server2的连接。
  • --character-set:配置连接时用的字符集,如果不显示配置默认使用character_set_client。
  • --width:配置显示的宽度。
  • --skip-table-options:保持表的选项不变,即对比的差异里面不包括表名、AUTO_INCREMENT、ENGINE、CHARSET等差异。 这个一定要加,否则肯定对比失败。测试环境和正式环境自增字段的当前值肯定不一样。如果是主从对比,就不要加。
  • -d DIFFTYPE,--difftype=DIFFTYPE:差异的信息显示的方式,有 [unified|context|differ|sql],默认是unified。如果使用sql,那么就直接生成差异的SQL,这样非常方便。
  • --changes-for=:修改对象。例如 –changes-for=server2,那么对比以sever1为主,生成的差异的修改也是针对server2的对象的修改。
  • --show-reverse:在生成的差异修改里面,同时会包含server2和server1的修改。
  • --force:完成所有的比较,不会在遇到一个差异之后退出
  • -vv:便于调试,输出许多信息
  • -q:quiet模式,关闭多余的信息输出

4,对于创业公司来讲,没有严格的正式环境(dba维护,上线提sql给dba),又没有好的习惯可以上线前执行此命令验证库的一致性。

常见使用方式如下:

mysqldiff  --server1=:xxx:xxx@xxx.xxx.xxx.xxx:3306 --server2=lxxx:lixxx@xx.xx.xx.xx:3306 --changes-for=server1 --skip-table-options --force db1:db2

执行上述命令,如果出现对比失败,见下图:

# WARNING: Using a password on the command line interface can be insecure. linux提示密码用在命令行不安全
# server1 on xxx.xxx.xxx.xxx: ... connected. 库1连接成功
# server2 on xxx.xx.xx.xx: ... connected. 库2连接成功
# Comparing `db1` to `db2`                             [PASS] 开始比对库1库2
# Comparing `dba1`.`table1` to `db2`.`table1`   [PASS]  库1的table1和库2的同名table1相同
--- `db1`.`table2` 发现库1的table2和库2同名的table2 出现不同  --代表server1的 ++代表server2
+++ `db2`.`table2`
@@ -2,10 +2,10 @@ `id` int(11) NOT NULL AUTO_INCREMENT,  相同`merchant_id` bigint(11) NOT NULL DEFAULT '0' COMMENT '商户id',   相同`merchant_name` varchar(100) NOT NULL DEFAULT '' COMMENT '商户名称',  相同
-  `login_name` varchar(45) NOT NULL DEFAULT '' COMMENT '登录名',       table2差异 db1的loginname
-  `login_password` varchar(45) NOT NULL DEFAULT '' COMMENT '登录密码', table2差异 db1的login_password
+  `login_name` varchar(45) NOT NULL DEFAULT '' COMMENT '登录名 暂时没用', table2差异 db2的loginname
+  `login_password` varchar(45) NOT NULL DEFAULT '' COMMENT '登录密码 暂时没用', table2差异db2的login_password
(发现注释中,db2的注释多了暂时没用)
# Compare failed. One or more differences found.  比对失败,结束

执行上述命令,对比成功,见下图:

# WARNING: Using a password on the command line interface can be insecure. linux提示密码用在命令行不安全
# server1 on xxx.xxx.xxx.xxx: ... connected. 库1连接成功
# server2 on xxx.xx.xx.xx: ... connected. 库2连接成功
# Comparing `db1` to `db2`                             [PASS]
# Comparing `db1`.`table1` to `db2`.`table1`   [PASS]
# Comparing `db1`.`table2` to `db2`.`table2`               [PASS]
# Success. All objects are the same.

代表库字段正常。

(注:缺表的日志我没有截,因为写博客的时候库里只有字段不同,没有缺少表,后期补充)

转载于:https://my.oschina.net/u/1454202/blog/3012292

库对比工具mysqldiff使用相关推荐

  1. mysql数据库对比工具、mysqldiff、数据库表结构变动对比

    mysql数据库对比工具.mysqldiff.数据库表结构变动对比 1.首先你要有 Navicat Premium 15,然后找到工具-结构同步 2.找到需要对比的数据库 3.点击比对 4.点击部署 ...

  2. Json数据的对比工具,对比库(含js在线对比工具,.net 的jsondiffer包)

    1)如果是偶尔手工对比两个值,可以借助json的在新对比工具: 在线地址: json在线对比工具 2)如果是.net 中对比两个json的差异. 建议使用:NuGet Gallery | JsonDi ...

  3. Python 自动化办公之 Excel 对比工具

    作者 | 周萝卜 来源丨萝卜大杂烩 今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 由于 ...

  4. Caffe、TensorFlow、MXnet三库对比

    Caffe.TensorFlow.MXnet三库对比 Google开源了他们内部使用的深度学习框架TensorFlow,结合之前开源的MXNet和Caffe,对三个开源库做了一些讨论.本文首先对三个库 ...

  5. Python自动化办公之Excel对比工具

    今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍! 需求 由于工作当中经常需要对比前后两个 Exc ...

  6. 【转】DICOM:DICOM三大开源库对比分析之“数据加载”

    背景: 上一篇博文DICOM:DICOM万能编辑工具之Sante DICOM Editor介绍了DICOM万能编辑工具,在日常使用过程中发现,"只要Sante DICOM Editor打不开 ...

  7. mysql 连接差异_和你一起从 0 实现一个数据库差异对比工具

    对比数据的痛苦 不知道你是否也像我一样,在快乐编写代码的时候,必须进行一些数据库的数据对比工作. 诚然,一般的数据差异,比如是每一行的内容不同,市场上有比较成熟的 compare2 等对比工具. 但是 ...

  8. 达梦数据对比工具VERI对oracle11gR2与oracle11gR2的实时同步后对比验证测试

    环境介绍 一:源库 1.oracle 11g R2,DMHSV4 2.10.0.0.21,crm库,ZHS16GBK,1521端口, 3.同步用户usercrm,密码abcd1234 4.同步表T01 ...

  9. 达梦数据库Veri对比工具管理平台的使用方法

    前言:今天大家简单介绍一下达梦数据库的一个对比工具,如何对两个库进行数据对比. 1.访问并登陆对比工具,访问地址为达梦运维服务器IP:8080/veri ,默认登陆账号密码为admin/admin. ...

最新文章

  1. 为了今年印象最深刻的唱片,转演唱会消息一个,虽然我去不了 55555
  2. Spring-Cloud中的统一配置中心
  3. ecshop api.php,api.php
  4. netcore docker_让.NetCore程序跑在任何有docker的地方
  5. php ajax xmlhttpreq 上传文件 get,使用Ajax XmlHttpRequest上传文件
  6. 洛阳地铁一号线无人驾驶_刚刚,最新消息!涉及洛阳地铁1号线、2号线…
  7. 转 oracle 监控执行计划突然变化
  8. 第三方易支付系统源码
  9. 网关统一配置解决跨域问题
  10. OpenGL核心技术之延迟着色器提升版
  11. 华为手机充当电脑的无线U盘 - 华为无线连接电脑 - 华为分享
  12. 2023.02.09 草图大师厨房效果图1skp素材效果图
  13. AWS创建并连接云虚拟机 - Linux(结尾附视频)
  14. 审计溯源 | IP-guard终端操作审计,助力高效防控泄密风险
  15. 2000-2009十年十大创业新模式
  16. centos7下RabbitMQ的安装
  17. PCI 32,PCI 64和PCI-X,PCI-E图解差别
  18. 移动机器人 | 手势识别
  19. 图形在计算机中用什么格式表示什么,使用什么软件打开dat文件,图形文字说明如何在计算机中查看DAT类型文件...
  20. ImageNet1K的下载与使用

热门文章

  1. GDCM:扫描包含DICOM文件的目录的测试程序
  2. boost::container_hash实现检查浮点函数
  3. ITK:计算矢量图像中每个像素的大小以生成大小图像
  4. ITK:图像阈值演示可用的阈值算法
  5. VTK:可视化算法之FireFlow
  6. VTK:Video之OggTheora
  7. VTK:PolyData之ImplicitSelectionLoop
  8. VTK:图片之ImageToStructuredPoints
  9. OpenCV在相机或图像中检测QR码的实例(附完整代码)
  10. Qt Creator粘贴和获取代码段