1.正常密码过期需要执行以下操作解决:
(1)切换到超级用户 sudo su
(2)使用原始密码登录mysql sh-3.2# ./mysql -uroot -pxxxxx
(3)mysql> show databases;
注意:输入show databases会提示你密码过期,需要重新设置密码
如:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
(4)SET PASSWORD = PASSWORD("XXXXX"); 或 set authentication_string=password('XXXXX');
注意:新版本的mysql数据库mysql.user没有password字段,是authentication_string字段
(5)刷新权限 flush privileges;
2.出现Unknown column 'password' in 'field list'
原因: 因为新版本mysql采用authentication_string替代了password字段
解决方案:
update mysql.user set authentication_string=password('root') where user='root' ;
flush privileges;
quit;
二、设置mysql密码永不过期
1.输入命令:mysql -uroot -p,回车;
2.提示输入密码时,输入原密码
3.修改原密码(若继续使用原密码无需此操作),输入命令:
set password for root@localhost = password('XXXXXX');<请牢记新密码>
4.修改root密码永不过期,输入命令:
alter user 'root'@'localhost' password expire never;
5.刷新权限
flush privileges;