此问题只在mysql5.6 ,5.7中实验生效,更高的版本可能不生效,请另寻其它解决办法。
在修改mysql的root用户密码后,再登陆,提示如标题的错误,找了一番答案之后,终于解决,步骤如下:
1.停掉mysql:
service mysqld stop
2.使用不验证的状态启动mysql:
service mysqld start --skip-grant-tables
若报错:
Redirecting to /bin/systemctl start --skip-grant-tables mysqld.service
/bin/systemctl:无法识别的选项“--skip-grant-tables”
试试在my.cnf 的 [mysqld] 下加入 skip-grant-tables
这个修改完密码记得删掉重启
3.进入mysql: mysql -u root
update mysql.user set authentication_string=password('密码') where user='用户' and Host ='%';
4.flush
privileges
;
5.quit
重新进入 mysql -utoot -p
然后输入密码就会发现问题已解决