mirror of
https://github.com/percona/percona-toolkit.git
synced 2026-05-07 01:00:05 +08:00
PT-2215 - pt-table-sync does not recognize the privileges in roles for MariaDB
- Removed unnecessary FOR clause from the SHOW GRANTS statement (we do not need it since 4.1.2 and we are not going to support legacy MySQL versions if such a support breaks modern versions support).
This commit is contained in:
+4
-20
@@ -3964,9 +3964,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -3975,23 +3973,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -420,9 +420,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -431,23 +429,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -4238,9 +4238,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -4249,23 +4247,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
@@ -4529,9 +4529,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -4540,23 +4538,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -10835,9 +10835,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -10846,23 +10844,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -2567,9 +2567,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -2578,23 +2576,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -2981,9 +2981,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -2992,23 +2990,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -5484,9 +5484,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -5495,23 +5493,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-20
@@ -7014,9 +7014,7 @@ sub _find_replicas_by_hosts {
|
||||
sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -7025,23 +7023,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
+4
-23
@@ -382,9 +382,7 @@ sub get_connected_replicas {
|
||||
my ( $self, $dbh ) = @_;
|
||||
|
||||
# Check for the PROCESS privilege.
|
||||
my $show = "SHOW GRANTS FOR ";
|
||||
my $user = 'CURRENT_USER()';
|
||||
my $sql = $show . $user;
|
||||
my $sql = "SHOW GRANTS";
|
||||
PTDEBUG && _d($dbh, $sql);
|
||||
|
||||
my $proc;
|
||||
@@ -393,26 +391,9 @@ sub get_connected_replicas {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
if ( $EVAL_ERROR ) {
|
||||
|
||||
if ( $EVAL_ERROR =~ m/no such grant defined for user/ ) {
|
||||
# Try again without a host.
|
||||
PTDEBUG && _d('Retrying SHOW GRANTS without host; error:',
|
||||
$EVAL_ERROR);
|
||||
($user) = split('@', $user);
|
||||
$sql = $show . $user;
|
||||
PTDEBUG && _d($sql);
|
||||
eval {
|
||||
$proc = grep {
|
||||
m/ALL PRIVILEGES.*?\*\.\*|PROCESS/
|
||||
} @{$dbh->selectcol_arrayref($sql)};
|
||||
};
|
||||
}
|
||||
|
||||
# The 2nd try above might have cleared $EVAL_ERROR.
|
||||
# If not, die now.
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
}
|
||||
|
||||
die "Failed to $sql: $EVAL_ERROR" if $EVAL_ERROR;
|
||||
|
||||
if ( !$proc ) {
|
||||
die "You do not have the PROCESS privilege";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user