innobackupex-1.5.1 cannot handle MySQL passwords which contain special characters
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona XtraBackup moved to https://jira.percona.com/projects/PXB |
Fix Released
|
High
|
Valentine Gostev |
Bug Description
Toolset version:
innobackupex : 1.5.1
xtrabackup : 1.2
Built from source, against MySQL 5.0.91.
Operating system RHEL 4, 64 bit AMD.
Command line :
innobackupex --user='<user name>' --password=
NB - notice that the password on the 'innobackupex' command line is quoted, to prevent the command line shell from trying to interpret it.
EG :
innobackupex-
--port=21192 \
--user='nick' \
--password=
--no-lock \
--defaults-file <path to config file>/my.
`pwd`
.... additional output here ....
innobackupex-
101209 14:34:06 innobackupex-1.5.1: Connected to database with mysql child process (pid=4969)
ERROR 1045 (28000): Access denied for user 'msandbox'
innobackupex-
As you can see, the '&' has been interpreted incorrectly when the upper level script calls the lower level MySQL instance.
The fix is as follows:
sub get_mysql_options {
my $options = '';
# this option has to be first
if ($option_
$options = "$options --defaults-
}
if ($option_
$options = "$options --password=
}
....
}
Related branches
- Vadim Tkachenko: Approve
-
Diff: 33 lines (+6/-6)1 file modifiedinnobackupex-1.5.1 (+6/-6)
- Alexey Kopytov (community): Approve
-
Diff: 102 lines (+57/-8)3 files modifiedinnobackupex-1.5.1 (+6/-6)
test/inc/common.sh (+2/-2)
test/t/ib_specialchar.sh (+49/-0)
Changed in percona-xtrabackup: | |
status: | New → Confirmed |
importance: | Undecided → High |
assignee: | nobody → Alexey Kopytov (akopytov) |
milestone: | none → 1.6 |
Changed in percona-xtrabackup: | |
status: | Confirmed → In Progress |
Changed in percona-xtrabackup: | |
status: | In Progress → Triaged |
Changed in percona-xtrabackup: | |
status: | Triaged → Confirmed |
Changed in percona-xtrabackup: | |
status: | Fix Committed → Fix Released |
Assigned to core-longbow to prepare test case