为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
MySQL


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管理


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消