I am able to replicate this problem as described. Relevant output with PTDEBUG=1
# /usr/bin/perl 5.010001 # Linux centos2 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:01:04 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux # Arguments: _[--sync-to-master]_ _[--execute]_ _[h=10.0.3.239,P=3306,u=checksum,p=xxxxxx]_ _[--databases=world]_ _[--wait=0]_ _[--noforeign-key-checks]_ _[--nounique-checks]_ _[--tables=test]_ _[--verbose]_ _[--transaction]_ _[--lock=1]_ _[--recursion-method=hosts]_ # OptionParser:290 1678 Option rule: Specify at least one of --print, --execute, or --dry-run. # OptionParser:290 1678 Option rule: --where and --replicate are mutually exclusive. # OptionParser:290 1678 Option rule: This tool accepts additional command-line arguments. Refer to the SYNOPSIS and usage information for details. . . # DSNParser:2028 1678 DSN option: copy=1, dsn=charset, desc=Default character set, key=A # DSNParser:2028 1678 DSN option: copy=1, dsn=database, desc=Database containing the table to be synced, key=D # DSNParser:2028 1678 DSN option: copy=1, dsn=mysql_read_default_file, desc=Only read default options from the given file, key=F # DSNParser:2028 1678 DSN option: copy=1, dsn=host, desc=Connect to host, key=h # DSNParser:2028 1678 DSN option: copy=1, dsn=password, desc=Password to use when connecting, key=p # DSNParser:2028 1678 DSN option: copy=1, dsn=port, desc=Port number to use for connection, key=P # DSNParser:2028 1678 DSN option: copy=1, dsn=mysql_socket, desc=Socket file to use for connection, key=S # DSNParser:2028 1678 DSN option: copy=1, dsn=undef, desc=Table to be synced, key=t # DSNParser:2028 1678 DSN option: copy=1, dsn=user, desc=User for login if not current user, key=u # OptionParser:253 1678 pt-table-sync 2.2.10 # OptionParser:575 1678 Cannot open /etc/percona-toolkit/percona-toolkit.conf: No such file or directory # # OptionParser:575 1678 Cannot open /etc/percona-toolkit/pt-table-sync.conf: No such file or directory # # OptionParser:575 1678 Cannot open /root/.percona-toolkit.conf: No such file or directory # # OptionParser:575 1678 Cannot open /root/.pt-table-sync.conf: No such file or directory # # OptionParser:543 1678 Got option sync-to-master = 1 # OptionParser:543 1678 Got option execute = 1 # OptionParser:543 1678 Got option databases = world # OptionParser:543 1678 Got option wait = 0 # OptionParser:543 1678 Got option foreign-key-checks = 0 # OptionParser:543 1678 Got option unique-checks = 0 # OptionParser:543 1678 Got option tables = test # OptionParser:543 1678 Got option verbose = 1 # OptionParser:543 1678 Got option transaction = 1 # OptionParser:543 1678 Got option lock = 1 # OptionParser:543 1678 Got option recursion-method = hosts . . # $DBD::mysql::VERSION: 4.013 $DBI::VERSION: 1.609 # pt_table_sync:10795 1678 DBI::db=HASH(0x145fda8) /*!40014 SET UNIQUE_CHECKS=0 */ # pt_table_sync:10800 1678 DBI::db=HASH(0x145fda8) /*!40014 SET FOREIGN_KEY_CHECKS=0 */ # pt_table_sync:10807 1678 DBI::db=HASH(0x145fda8) /*!40101 SET @@SQL_MODE := CONCAT(@@SQL_MODE, ',NO_AUTO_VALUE_ON_ZERO')*/ # VersionParser:2525 1678 VersionParser got a dbh, trying to get the version # VersionParser:2573 1678 InnoDB support: DEFAULT # VersionParser:2585 1678 InnoDB version: 5.5.39-36.0 # pt_table_sync:10819 1678 DBI::db=HASH(0x145fda8) SELECT @@binlog_format # pt_table_sync:10821 1678 Original binlog_format: STATEMENT # pt_table_sync:10846 1678 DBI::db=HASH(0x145fda8) SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ # pt_table_sync:10853 1678 Opened dbh DBI::db=HASH(0x145fda8) # MasterSlave:6903 1678 DBI::db=HASH(0x145fda8) SHOW MASTER STATUS # MasterSlave:6907 1678 Position=680 Binlog_Do_DB= Binlog_Ignore_DB= File=master1-bin.000002 # MasterSlave:6879 1678 DBI::db=HASH(0x1aae760) SHOW SLAVE STATUS # MasterSlave:6789 1678 DBI::db=HASH(0x145fda8) SHOW GRANTS FOR CURRENT_USER() # MasterSlave:6819 1678 DBI::db=HASH(0x145fda8) SHOW PROCESSLIST
The slave is connected to 39966 but the master's port is 3306 at /usr/bin/pt-table-sync line 6840.
I am able to replicate this problem as described. Relevant output with PTDEBUG=1
# /usr/bin/perl 5.010001 to-master] _ _[--execute]_ _[h=10. 0.3.239, P=3306, u=checksum, p=xxxxxx] _ _[--databases= world]_ _[--wait=0]_ _[--noforeign- key-checks] _ _[--nounique- checks] _ _[--tables=test]_ _[--verbose]_ _[--transaction]_ _[--lock=1]_ _[--recursion- method= hosts]_ read_default_ file, desc=Only read default options from the given file, key=F toolkit/ percona- toolkit. conf: No such file or directory toolkit/ pt-table- sync.conf: No such file or directory percona- toolkit. conf: No such file or directory pt-table- sync.conf: No such file or directory :VERSION: 4.013 $DBI::VERSION: 1.609 HASH(0x145fda8) /*!40014 SET UNIQUE_CHECKS=0 */ HASH(0x145fda8) /*!40014 SET FOREIGN_ KEY_CHECKS= 0 */ HASH(0x145fda8) /*!40101 SET @@SQL_MODE := CONCAT(@@SQL_MODE, ',NO_AUTO_ VALUE_ON_ ZERO')* / HASH(0x145fda8) SELECT @@binlog_format HASH(0x145fda8) SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ HASH(0x145fda8) HASH(0x145fda8) SHOW MASTER STATUS bin.000002 HASH(0x1aae760) SHOW SLAVE STATUS HASH(0x145fda8) SHOW GRANTS FOR CURRENT_USER() HASH(0x145fda8) SHOW PROCESSLIST
# Linux centos2 3.8.0-44-generic #66~precise1-Ubuntu SMP Tue Jul 15 04:01:04 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# Arguments: _[--sync-
# OptionParser:290 1678 Option rule: Specify at least one of --print, --execute, or --dry-run.
# OptionParser:290 1678 Option rule: --where and --replicate are mutually exclusive.
# OptionParser:290 1678 Option rule: This tool accepts additional command-line arguments. Refer to the SYNOPSIS and usage information for details.
.
.
# DSNParser:2028 1678 DSN option: copy=1, dsn=charset, desc=Default character set, key=A
# DSNParser:2028 1678 DSN option: copy=1, dsn=database, desc=Database containing the table to be synced, key=D
# DSNParser:2028 1678 DSN option: copy=1, dsn=mysql_
# DSNParser:2028 1678 DSN option: copy=1, dsn=host, desc=Connect to host, key=h
# DSNParser:2028 1678 DSN option: copy=1, dsn=password, desc=Password to use when connecting, key=p
# DSNParser:2028 1678 DSN option: copy=1, dsn=port, desc=Port number to use for connection, key=P
# DSNParser:2028 1678 DSN option: copy=1, dsn=mysql_socket, desc=Socket file to use for connection, key=S
# DSNParser:2028 1678 DSN option: copy=1, dsn=undef, desc=Table to be synced, key=t
# DSNParser:2028 1678 DSN option: copy=1, dsn=user, desc=User for login if not current user, key=u
# OptionParser:253 1678 pt-table-sync 2.2.10
# OptionParser:575 1678 Cannot open /etc/percona-
#
# OptionParser:575 1678 Cannot open /etc/percona-
#
# OptionParser:575 1678 Cannot open /root/.
#
# OptionParser:575 1678 Cannot open /root/.
#
# OptionParser:543 1678 Got option sync-to-master = 1
# OptionParser:543 1678 Got option execute = 1
# OptionParser:543 1678 Got option databases = world
# OptionParser:543 1678 Got option wait = 0
# OptionParser:543 1678 Got option foreign-key-checks = 0
# OptionParser:543 1678 Got option unique-checks = 0
# OptionParser:543 1678 Got option tables = test
# OptionParser:543 1678 Got option verbose = 1
# OptionParser:543 1678 Got option transaction = 1
# OptionParser:543 1678 Got option lock = 1
# OptionParser:543 1678 Got option recursion-method = hosts
.
.
# $DBD::mysql:
# pt_table_sync:10795 1678 DBI::db=
# pt_table_sync:10800 1678 DBI::db=
# pt_table_sync:10807 1678 DBI::db=
# VersionParser:2525 1678 VersionParser got a dbh, trying to get the version
# VersionParser:2573 1678 InnoDB support: DEFAULT
# VersionParser:2585 1678 InnoDB version: 5.5.39-36.0
# pt_table_sync:10819 1678 DBI::db=
# pt_table_sync:10821 1678 Original binlog_format: STATEMENT
# pt_table_sync:10846 1678 DBI::db=
# pt_table_sync:10853 1678 Opened dbh DBI::db=
# MasterSlave:6903 1678 DBI::db=
# MasterSlave:6907 1678 Position=680 Binlog_Do_DB= Binlog_Ignore_DB= File=master1-
# MasterSlave:6879 1678 DBI::db=
# MasterSlave:6789 1678 DBI::db=
# MasterSlave:6819 1678 DBI::db=
The slave is connected to 39966 but the master's port is 3306 at /usr/bin/ pt-table- sync line 6840.