Started GET "/" for 127.0.0.1 at 2017-03-14 05:29:35 +0800
Mysql2::Error (Your password has expired. To log in you must change it using a client that supports expired passwords.):
This is an instance I encountered a few days ago. Apparently, MYSQL allows users to automatically expire passwords.
To fix the issue, log in to your MySQL console using your old password.
You will need to alter your password by using the following command:
ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password', `root`@`localhost` PASSWORD EXPIRE NEVER;
Here it is in action!
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.10
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use database your_database ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER `root`@`localhost` IDENTIFIED BY 'new_password', `root`@`localhost` PASSWORD EXPIRE NEVER; Query OK, 0 rows affected (0.00 sec)
mysql> \q Bye