起飞小宇 发表于 2024-10-4 10:27:41

GreatSQL 8.0.32-26 测试PT工具中 pt-table-checksum的问题






一、测试相同端口模式


环境描述:
版本:GreatSQL 8.0.32-26
10.1.30.137 主库,3306
10.1.30.138 从库,3306



--以下能正常运行,
pt-table-checksum\
--create-replicate-table \
--replicate=mysql.checksums \
--nocheck-replication-filters \
--nocheck-binlog-format \
--recursion-method=processlist \
--databases=businessex\
--host=10.1.30.137 \
--port=3306
--user=root \
--password='vUdqtDE7n.8b'


--结果输出如下:
Checking if all tables can be checksummed ...
Starting checksum ...
            TS ERRORSDIFFS    ROWSDIFF_ROWSCHUNKS SKIPPED    TIME TABLE
10-03T21:31:48      0      0614608          0      16      09.951 businessex.applicationimport

省略其他...






一、测试不同端口模式


环境描述:
版本:GreatSQL 8.0.32-26
10.1.30.137 主库,3306
10.1.30.138 从库,3307




--测试138从库的3307端口登陆

这里就报错了,看起来像是用户密码的问题,但是我之前测试过,看起来是可以的。。不知道问题在哪里了。












yejr 发表于 2024-10-4 23:09:00

我这里看不到错误信息

pt工具详细使用方法参考 https://greatsql.cn/docs/8.0.32-26/6-oper-guide/10-6-pt-replication.html#pt-table-checksum

起飞小宇 发表于 2024-10-5 22:19:09

yejr 发表于 2024-10-4 23:09
我这里看不到错误信息

pt工具详细使用方法参考 https://greatsql.cn/docs/8.0.32-26/6-oper-guide/10-6-pt ...



二、测试不同端口模式


环境描述:
版本:GreatSQL 8.0.32-26,openeuler 22.03 TLS SP4
10.1.30.137 主库,3306
10.1.30.138 从库,3307

--从这里可以看到137 可以通过root正常登陆
# mysql -uroot -p'vUdqtDE7n.8b' -h10.1.30.137 -P3306
mysql: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 509
Server version: 8.0.32-26 GreatSQL, Release 26, Revision a68b3034c3d

Copyright (c) 2021-2024 GreatDB Software Co., Ltd
Copyright (c) 2009-2024 Percona LLC and/or its affiliates
Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@mysqldb1 22:12:[(none)]> select * from mysql.dsns;
+----+-----------+----------------------------------------------+
| id | parent_id | dsn                                          |
+----+-----------+----------------------------------------------+
|1 |      NULL | h=10.1.30.138,P=3307,u=root,p='vUdqtDE7n.8b' |
+----+-----------+----------------------------------------------+
1 row in set (0.00 sec)


--从这里可以看到138 可以通过root正常登陆,且是3307端口
# mysql -uroot -p'vUdqtDE7n.8b' -P3307 -h10.1.30.138
mysql: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.32-26 GreatSQL, Release 26, Revision a68b3034c3d

Copyright (c) 2021-2024 GreatDB Software Co., Ltd
Copyright (c) 2009-2024 Percona LLC and/or its affiliates
Copyright (c) 2000, 2024, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@mysqldb1 22:13:[(none)]> exit
Bye



--在137上执行,这里就报错了:看起来像是用户密码验证不对。
pt-table-checksum \
>   --replicate=mysql.checksums \
>   --nocheck-replication-filters \
>   --no-check-binlog-format \
>   --host=10.1.30.137 \
>   --port=3306 \
>   --user=root \
>   --password='vUdqtDE7n.8b' \
>   --databases=businessex \
>   --recursion-method dsn=h=10.1.30.137,D=mysql,t=dsns
Checking if all tables can be checksummed ...
Starting checksum ...
10-05T22:12:39 DBI connect(';host=10.1.30.138;port=3307;mysql_read_default_group=client','root',...) failed: Access denied for user 'root'@'10.1.30.137' (using password: YES) at /usr/local/percona-toolkit-3.6.0/bin/pt-table-checksum line 1639.

起飞小宇 发表于 2024-10-5 23:04:58

起飞小宇 发表于 2024-10-5 22:19



--尝试使用--ask-pass ,发现缺少perl-TermReadKey,安装一下perl-TermReadKey(137,138都装了)
# pt-table-checksum \
>   --replicate=mysql.checksums \
>   --nocheck-replication-filters \
>   --no-check-binlog-format \
>   --host=10.1.30.137 \
>   --port=3306 \
>   --user=root \
>   --ask-pass\
>   --databases=businessex \
>   --recursion-method dsn=h=10.1.30.137,D=mysql,t=dsns
Enter MySQL password: 10-05T22:41:37 Cannot read response; is Term::ReadKey installed? Can't locate Term/ReadKey.pm in @INC (you may need to install the Term::ReadKey module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5) at /usr/local/percona-toolkit-3.6.0/bin/pt-table-checksum line 2737.
# yum install perl-TermReadKey
Last metadata expiration check: 1:48:03 ago on 2024年10月05日 星期六 20时54分09秒.
Dependencies resolved.
====================================================================================================================================================================================
Package                                       Architecture                        Version                                          Repository                           Size
====================================================================================================================================================================================
Installing:
perl-TermReadKey                              x86_64                              2.38-2.oe2203sp4                                 base                                 20 k

Transaction Summary
====================================================================================================================================================================================
Install1 Package

Total size: 20 k
Installed size: 44 k
Is this ok : y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing      :                                                                                                                                                            1/1
Installing       : perl-TermReadKey-2.38-2.oe2203sp4.x86_64                                                                                                                   1/1
Running scriptlet: perl-TermReadKey-2.38-2.oe2203sp4.x86_64                                                                                                                   1/1
Verifying      : perl-TermReadKey-2.38-2.oe2203sp4.x86_64                                                                                                                   1/1

Installed:
perl-TermReadKey-2.38-2.oe2203sp4.x86_64

Complete!


--安装perl-TermReadKey后,感觉问题依旧
# pt-table-checksum \
>   --replicate=mysql.checksums \
>   --nocheck-replication-filters \
>   --no-check-binlog-format \
>   --host=10.1.30.137 \
>   --port=3306 \
>   --user=root \
>   --ask-pass\
>   --databases=businessex \
>   --recursion-method dsn=h=10.1.30.137,D=mysql,t=dsns
Enter MySQL password:
Checking if all tables can be checksummed ...
Starting checksum ...
10-05T22:55:24 DBI connect(';host=10.1.30.138;port=3307;mysql_read_default_group=client','root',...) failed: Access denied for user 'root'@'10.1.30.137' (using password: YES) at /usr/local/percona-toolkit-3.6.0/bin/pt-table-checksum line 1639.

yejr 发表于 2024-10-6 13:09:08

起飞小宇 发表于 2024-10-5 23:04


看起来是密码认证错误,或者授权不正确。
可以试试新建一个专用账户。
页: [1]
查看完整版本: GreatSQL 8.0.32-26 测试PT工具中 pt-table-checksum的问题