| Bug #25452 | mysql_upgrade access denied. | ||
|---|---|---|---|
| Submitted: | 7 Jan 2007 5:29 | Modified: | 8 May 2007 0:56 |
| Reporter: | Mark Johnson (Basic Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Installing | Severity: | S3 (Non-critical) |
| Version: | 5.0.32 | OS: | Linux (linux) |
| Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
| Tags: | installation, server, upgrade | ||
[7 Jan 2007 5:29]
Mark Johnson
[7 Jan 2007 17:56]
Giuseppe Maxia
Thanks for the bug report. Verified as described on 5.0.32 Enterprise. Also, on 5.1.14 (and later versions), the same application exits with a segmentation fault.
[7 Mar 2007 4:24]
Matthew Smith
Same behaviour on 5.1.16-beta, built under Linux, using either -p or --password=. /usr/bin/mysqlcheck: Got error: 1045: Access denied for user 'root'@'localhost' (using password: NO) Unfortunately, as this is not a script, I can't just look at it and then run the commands by hand.
[8 Mar 2007 11:33]
Magnus Blåudd
Working on new version of mysql_upgrade and has added a testcase to mysql_upgrade.test looking like this: >> # # Bug #25452 mysql_upgrade access denied. # # Password protect a root account and run mysql_upgrade CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila'; GRANT ALL ON *.* TO mysqltest1@'%'; --echo Run mysql_upgrade with password --exec $MYSQL_UPGRADE --skip-verbose --force --user=mysqltest1 --password=sakila 2> $MYSQLTEST_VARDIR/log/mysql_upgrade.err DROP USER mysqltest1@'%'; <<
[8 Mar 2007 11:35]
Magnus Blåudd
The password is erased by code in get_one_option
case 'p':
tty_password= 1;
if (argument)
{
char *start= argument;
my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
opt_password= my_strdup(argument, MYF(MY_FAE));
while (*argument)
*argument++= 'x'; /* Destroy argument */
^^ Here
if (*start)
start[1]= 0; /* Cut length of argument */
^^ And if that was not enough, here too.
tty_password= 0;
}
[18 Apr 2007 11:21]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/24764 ChangeSet@1.2461, 2007-04-18 13:21:39+02:00, msvensson@pilot.blaudden +11 -0 Bug#25452 mysql_upgrade access denied - Improve mysql_upgrade and add comments describing it's logic - Don't look for mysql and mysqlcheck randomly, use dir where mysql_upgrade was started from - Don't look for mysql_fix_privilege_tables.sql randomly, compile in the mysql_fix_privilege_tables.sql file and use that to upgrade the system tables of MySQL - Check for any unexpected error returned from runnning the mysql_fix_privilege_tables SQL - Fix bug#26639, bug#24248 and bug#25405
[26 Apr 2007 11:36]
Bugs System
Pushed into 5.1.18-beta
[26 Apr 2007 11:37]
Bugs System
Pushed into 5.0.42
[8 May 2007 0:56]
Paul DuBois
Noted in 5.0.42, 5.1.18 changelogs. mysql_upgrade did not pass a password to mysqlcheck if one was given.
