pt-table-checksum工具主机和从机的端口不一样,怎么解决?

lanbaibai 2013-07-29 03:30:12
我在使用pt-table-checksum检查主从数据是否一致遇到的问题:
一个主,两个从
主:192.168.11.50 端口3306
从1:192.168.11.64 端口3306
从2:192.168.11.74 端口3307
pt-table-checksum可以很容易检查从1的数据是否一致,但是从2因为端口是3307,连接不上,如何解决?
...全文
503 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
江南雪_158 2015-12-22
  • 打赏
  • 举报
回复
学习学习
qq_26650809 2015-12-15
  • 打赏
  • 举报
回复
recursion-method 配置完这个参数一直提示Waiting for the --replicate table to replicate to localhost.localdomain...
老钱包 2013-08-02
  • 打赏
  • 举报
回复
学习一下。正在尝试用pt工具。。。。
lanbaibai 2013-07-31
  • 打赏
  • 举报
回复
已经解决。 在Master机的test库加入 CREATE TABLE `dsns` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULTNULL, `dsn` varchar(255) NOT NULL, PRIMARY KEY (`id`) ); – 写入从库信息 INSERT INTO dsns (parent_id,dsn) values(1,'h=192.168.11.64,u=checksums,p=123456,P=3306'); – 如果有多个从库,就插入多条记录. INSERT INTO dsns (parent_id,dsn) values(1,'h=192.168.11.64,u=checksums,p=123456,P=3307'); 执行pt-table-checksum命令时多加下面的参数即可。 --recursion-method=dsn=h=192.168.11.103,D=test,t=dsns
lanbaibai 2013-07-30
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
[quote=引用 2 楼 lanbaibai 的回复:] 最后显示比较结果,比较主从数据的时候,要从从机的checksums表中取数据,连不上,怎么取数据。
只在主机上执行pt-table-checksum就可以了,从来就不需要从从机取东西[/quote] pt-table-checksum是在主机执行,从机同步执行replace into 到checksums表,在从机的checksums表会知道哪里数据不一致。这部分数据是放到从机数据库中,pt-table-checksum想显示比较结果,就必须连接从机数据库。我觉得你并没有仔细研究过pt-table-checksum整个运转的机制。
lanbaibai 2013-07-30
  • 打赏
  • 举报
回复
引用 3 楼 rucypli 的回复:
[quote=引用 2 楼 lanbaibai 的回复:] 最后显示比较结果,比较主从数据的时候,要从从机的checksums表中取数据,连不上,怎么取数据。
只在主机上执行pt-table-checksum就可以了,从来就不需要从从机取东西[/quote] pt-table-checksum是在主机执行,但是客户端显示结果需要从从机取数据,不取数据pt-table-checksum怎么会知道两个数据不一致。除非你自己去从机的库查数据。
rucypli 2013-07-30
  • 打赏
  • 举报
回复
引用 5 楼 lanbaibai 的回复:
[quote=引用 3 楼 rucypli 的回复:] [quote=引用 2 楼 lanbaibai 的回复:] 最后显示比较结果,比较主从数据的时候,要从从机的checksums表中取数据,连不上,怎么取数据。
只在主机上执行pt-table-checksum就可以了,从来就不需要从从机取东西[/quote] pt-table-checksum是在主机执行,从机同步执行replace into 到checksums表,在从机的checksums表会知道哪里数据不一致。这部分数据是放到从机数据库中,pt-table-checksum想显示比较结果,就必须连接从机数据库。我觉得你并没有仔细研究过pt-table-checksum整个运转的机制。[/quote] 比较结果不就是在slave机器上执行select语句吗 mysql> select this_crc,master_crc from checksums; +----------+------------+ | this_crc | master_crc | +----------+------------+ | c791c26d | c791c26d | | 890c0f | 890c0f | | 0 | 0 | | 0 | 0 | +----------+------------+ 4 rows in set (0.00 sec) replace语句是计算本机的this_crc update的语句是直接更新 master_crc为master上的校验值 这个都是能从binlog里看出来的
rucypli 2013-07-29
  • 打赏
  • 举报
回复
引用 2 楼 lanbaibai 的回复:
最后显示比较结果,比较主从数据的时候,要从从机的checksums表中取数据,连不上,怎么取数据。
只在主机上执行pt-table-checksum就可以了,从来就不需要从从机取东西
lanbaibai 2013-07-29
  • 打赏
  • 举报
回复
最后显示比较结果,比较主从数据的时候,要从从机的checksums表中取数据,连不上,怎么取数据。
rucypli 2013-07-29
  • 打赏
  • 举报
回复
pt-table-checksum只是在主库上执行insert语句 然后复制到从库上去 这和从库的端口有什么关系

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧