继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

largeQ
关注TA
已关注
手记 989
粉丝 92
获赞 585


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.

附件:http://down.51cto.com/data/2365598

©著作权归作者所有:来自51CTO博客作者hcymysql的原创作品,如需转载,请注明出处,否则将追究法律责任

mysql主从表mysqldiffMySQL管理


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP