问题如下,
这个报错原因其实是密码过期了。不管你是刚刚修改密码还是什么,只要登陆都是有问题的,都是报这样子的错误。
解决办法呢,就是先通过跳过授权表的方式启动数据库,
mysqld_safe --user=mysql--datadir=/data/mysql --skip-grant-tables --skip-networking &
这步其实也可以用另外一种办法代替,
就是我们直接去修改/etc/my.cnf这个文件,在[mysqld]下加入“skip-grant-tables”。
然后重启mysql服务器,
service mysqld restart
然后修改该用户密码过期策略为N,即依次执行这两句sql,
update mysql.user set password_expired='N' where user='root';
flush privileges;
再次service mysql restart重启服务器这样就好了。
注意,如果第一步是通过shell命令跳过授权表的话,重启就可以;如果是通过更改/etc/my.cnf文件的话,记得把[mysqld]下的skip-grant-tables这个去掉再重启。