If you want a work around comment out the following in /usr/bin/pt-table-checksum. It seems to work fine.
Starting at line 9202
if ( VersionParser->new($dbh) >= '5.1.5' ) {
$sql = 'SELECT @@binlog_format';
PTDEBUG && _d($dbh, $sql);
my ($original_binlog_format) = $dbh->selectrow_array($sql);
PTDEBUG && _d('Original binlog_format:', $original_binlog_format);
if ( $original_binlog_format !~ /STATEMENT/i ) {
$sql = q{/*!50108 SET @@binlog_format := 'STATEMENT'*/};
eval { PTDEBUG && _d($dbh, $sql); $dbh->do($sql);
};
if ( $EVAL_ERROR ) {
die "Failed to $sql: $EVAL_ERROR\n"
. "This tool requires binlog_format=STATEMENT, "
. "but the current binlog_format is set to " ."$original_binlog_format and an error occurred while "
. "attempting to change it. If running MySQL 5.1.29 or newer, "
. "setting binlog_format requires the SUPER privilege. "
. "You will need to manually set binlog_format to 'STATEMENT' "
. "before running this tool.\n";
}
}
}
If you want a work around comment out the following in /usr/bin/ pt-table- checksum. It seems to work fine.
Starting at line 9202
if ( VersionParser- >new($dbh) >= '5.1.5' ) { binlog_ format) = $dbh->selectrow _array( $sql); binlog_ format) ; binlog_ format !~ /STATEMENT/i ) {
PTDEBUG && _d($dbh, $sql);
$dbh-> do($sql) ; format= STATEMENT, "
."$ original_ binlog_ format and an error occurred while "
$sql = 'SELECT @@binlog_format';
PTDEBUG && _d($dbh, $sql);
my ($original_
PTDEBUG && _d('Original binlog_format:', $original_
if ( $original_
$sql = q{/*!50108 SET @@binlog_format := 'STATEMENT'*/};
eval {
};
if ( $EVAL_ERROR ) {
die "Failed to $sql: $EVAL_ERROR\n"
. "This tool requires binlog_
. "but the current binlog_format is set to "
. "attempting to change it. If running MySQL 5.1.29 or newer, "
. "setting binlog_format requires the SUPER privilege. "
. "You will need to manually set binlog_format to 'STATEMENT' "
. "before running this tool.\n";
}
}
}