mysqldiff对比主从表结构是否一致

本文介绍mysqldiff工具的安装与使用方法,帮助用户轻松比较两个MySQL服务器上表结构的一致性,并提供差异展示及SQL变更脚本。

mysqldiff该工具是官方mysql-utilities工具集的一个脚本,可以实现主从服务器表结构是否一致。数据校验需要使用Percona的pt-table-checksum工具。


安装:

# tar zxvf mysql-utilities-1.5.4.tar.gz
# cd mysql-utilities-1.5.4
# python setup.py install


使用方法:

mysqldiff --server1=admin:123456@192.168.79.10 --server2=admin:123456@192.168.79.11 
--difftype=differ test:test
# WARNING: Using a password on the command line interface can be insecure.
# server1 on 192.168.79.10: ... connected.
# server2 on 192.168.79.11: ... connected.
# Comparing `test` to `test`                                       [PASS]
# Comparing `test`.`t1` to `test`.`t1`                             [FAIL]
# Object definitions differ. (--changes-for=server1)
#
  CREATE TABLE `t1` (
    `id` int(11) DEFAULT NULL,
-   `name` char(4) DEFAULT NULL
?               ^
+   `name` char(16) DEFAULT NULL
?               ^^
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8
Compare failed. One or more differences found.

很直观的找出不一样的地方。


如果你想打印出修改表结构的语句,如下:

# mysqldiff --server1=admin:123456@192.168.79.10 --server2=admin:123456@192.168.79.11 
--difftype=sql test:test
# WARNING: Using a password on the command line interface can be insecure.
# server1 on 192.168.79.10: ... connected.
# server2 on 192.168.79.11: ... connected.
# Comparing `test` to `test`                                       [PASS]
# Comparing `test`.`t1` to `test`.`t1`                             [FAIL]
# Transformation for --changes-for=server1:
#
ALTER TABLE `test`.`t1` 
  CHANGE COLUMN name name char(16) NULL;
Compare failed. One or more differences found.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值