[MDEV-24497] MariaDB for reasons unknown requires a set password command be run against each account Created: 2020-12-28  Updated: 2021-03-01  Resolved: 2021-03-01

Status: Closed
Project: MariaDB Server
Component/s: Authentication and Privilege System
Affects Version/s: 10.4.12
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Michael Necklas Assignee: Sergei Golubchik
Resolution: Incomplete Votes: 0
Labels: need_feedback


 Description   

MariaDB for reasons unknown requires a set password command be run against each account.

our MariaDB servers were upgraded in September to 10.4.12



 Comments   
Comment by Sergei Golubchik [ 2020-12-30 ]

MariaDB for reasons unknown requires a set password command be run against each account.

what do you mean by that? "requires" how?

Comment by Michael Necklas [ 2020-12-30 ]

under 10.2.13 the account's passwords never expired. the only time they got changed typically was when the user forgot the password and then as mysql we'd alter them a new one.

in September we upgraded our 24 MariaDB servers to 10.4.12 and 90 days later the mysql account crons started failing with a must set password error. so we had to do a set password for the root account.

then the users started reporting the same issue.

What i discovered is the day we did the upgrade that automatically established a PASSWORD LAST CHANGED date and also a EXPIRY DATE which was 90 days from the upgrade and PASSWORD LAST CHANGED date.

Our .my.cnf has a variable default to "default_password_lifetime=90"

So we had to execute an ALTER USER '?'@'?' PASSWORD EXPIRE INTERVAL 120 day;
for all our accounts and then advise the application that they will need to change their password every 90 days
going forward.

Let me know if i misstated anything or if there is anything else I should know regarding this change between 10.2.13 and 10.4.12.

Comment by Sergei Golubchik [ 2021-01-28 ]

Normally, of course, this shouldn't be happening. Definitely, not intended.

What could've happened, that after upgrading from MySQL 5.6 (or 5.7) via few MariaDB versions, and running mysql_upgrade every time, the original MySQL-ish columns in mysql.user table ended up in some unexpected position.

What does SHOW CREATE TABLE mysql.user returns?

Do you by any chance have mysql.user table before the upgrade? From a backup, may be?

Generated at Thu Feb 08 09:30:26 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.