Thanks for the report.
The problem itself is generic, but it's most visible on Windows due to the specific upgrade process.
Here is how mysql_upgrade_service works (skipping irrelevant details):
- stop server;
- start server with skip-grant-tables;
- run mysql_upgrade;
- stop server;
- start server normally.
It runs the server with skip-grant-tables, so it doesn't need to care about valid username/password, which it has nowhere to take from.
It worked fine till recently. But starting from the following revision
revno: 4336
|
revision-id: sergii@pisem.net-20140806112744-qb444e3qz83564db
|
fixes bug: https://mariadb.atlassian.net/browse/MDEV-6535
|
committer: Sergei Golubchik <sergii@pisem.net>
|
branch nick: 10.0
|
timestamp: Wed 2014-08-06 13:27:44 +0200
|
message:
|
MDEV-6535 Ordering of mysql_upgrade tasks is not optimal
|
|
first update system tables, then the rest
|
things changed. Now mysql_upgrade starts by fixing privilege tables, which ends with FLUSH PRIVILEGES (it used to be run at the end). After that, when next steps are attempted, they can't be executed because privilege checks are back in place, while mysql_upgrade and its children don't use a valid account.
Thanks for the report.
The problem itself is generic, but it's most visible on Windows due to the specific upgrade process.
Here is how mysql_upgrade_service works (skipping irrelevant details):
It runs the server with skip-grant-tables, so it doesn't need to care about valid username/password, which it has nowhere to take from.
It worked fine till recently. But starting from the following revision
revno: 4336
revision-id: sergii@pisem.net-20140806112744-qb444e3qz83564db
fixes bug: https://mariadb.atlassian.net/browse/MDEV-6535
committer: Sergei Golubchik <sergii@pisem.net>
branch nick: 10.0
timestamp: Wed 2014-08-06 13:27:44 +0200
message:
MDEV-6535 Ordering of mysql_upgrade tasks is not optimal
first update system tables, then the rest
things changed. Now mysql_upgrade starts by fixing privilege tables, which ends with FLUSH PRIVILEGES (it used to be run at the end). After that, when next steps are attempted, they can't be executed because privilege checks are back in place, while mysql_upgrade and its children don't use a valid account.