Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程

2019年12月6日更新。 操作的是阿里云轻量应用服务器的ubuntu16.04系统,数据库版本5.7.28

步骤一:终端执行mysql -u root p123456,报如下错误。确实是忘记密码了,报错是应该的。

image.png

步骤二:执行sudo vim /etc/mysql/debian.cnf命令,复制密码egZSaEJvOEU5HI5a ,然后退出

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第1张图片
image.png

步骤三:mysql -udebian-sys-maint -pegZSaEJvOEU5HI5a -p后面紧跟密码,当然你也可以写成mysql -udebian-sys-maint -p,然后回车后,输入暗文egZSaEJvOEU5HI5a

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第2张图片
image.png

步骤四:查看数据库版本

select version();

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第3张图片
image.png

步骤五:输入use mysql;使用名为mysql的数据库

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第4张图片
image.png

步骤六:输入select user, plugin from mysql.user;,然后查看user为root对应的plugin的值

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第5张图片
image.png

步骤七:更新用户名为root的密码为666666

update user set authentication_string =password('666666') where user='root';
注意:如果步骤五中root对应的plugin的值不是mysql_native_password,那么步骤六的命令需改为update user set authentication_string =password('666666'),plugin='mysql_native_password' where user='root';

image.png

步骤八:刷新,使之生效

FLUSH PRIVILEGES;

image.png

步骤九:退出

quit;

image.png

步骤十:关闭mysql服务,然后开启mysql服务。注意不要用restart,会有莫名其妙的新密码也无法识别正确的问题

sudo service mysql stop
sudo service mysql start

image.png

步骤十一:以后root用户,密码为666666登录mysql

mysql -u root -p666666

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第6张图片
image.png

步骤一到步骤十一的全部命令

image.png

2019年2月份

【经典解决办法】https://www.cnblogs.com/py1612919884/p/9327015.html
https://blog.csdn.net/wangliyao518/article/details/83011522

测试【成功】

 mysql -udebian-sys-maint -p
use  mysql;
select user, plugin from mysql.user;
update user set authentication_string =password('NewCoderZB'),plugin='mysql_native_password' where user='root';
select user, plugin from mysql.user;
exit
sudo service mysql restart
mysql -uroot -pNewCoderZB

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第7张图片
image.png

进入mysql,命令行的方式一:

mysql -uroot -pCoderZB

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第8张图片
image.png

进入mysql,命令行的方式二:

先敲mysql -uroot -p回车,然后输入密码(密文)即可。

Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程_第9张图片
image.png

你可能感兴趣的:(Ubuntu16.04 修改登录mysql的密码或者报 ERROR 1698 (28000): Access denied for user 'root'@'localhost' 错误的解决流程)