微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ubuntu下连接mysql出现 ERROR 1698 (28000): Access denied for user 'root'@'localhost'错误解决方法

ubuntu版本:18.04    MysqL版本:5.7.24  

 

分享图片

 

ubuntu安装MysqL后用root账户登入会出现问题:ERROR 1698 (28000): Access denied for user ‘root‘@‘localhost‘

 

可能是因为初始密码为空;按空格回车后还是报一样的错

 

这样就只能使用debian-sys-maint账户修改root账户密码了。

debian-sys-maint账户是安装MysqL时系统自动生成MysqL用户,debian和ubuntu系统都会这样做, 

停止或重启服务都靠它,删除它就无法重启或者雷霆之服务。
如果你修改了它的密码或覆盖掉密码,也会出现错误
error: ‘Access denied for user ‘debian-sys-maint‘@‘localhost‘ (using password: YES)‘

 

 1  查看debian-sys-maint账户密码:

 

debian-sys-maint账户是安装MysqL时系统自动生成的,密码随机生成

 

终端输入: sudo vim /etc/MysqL/debian.cnf  


分享图片

 

password就是密码,如果是复制密码由后面使用,切忌不要将密码字符串后面的空格也复制进去,否者后面粘贴密码登入账户时会出现错误

 

2 用刚才查看的密码登入debian-sys-maint账户:

 

终端输入指令:MysqL -u debian-sys-maint -p ,然后输入刚才查看的debian-sys-maint账户密码。 注意-u可以和debian-sysy连在一起,-p不能。u表示用户名,p表示密码。

 

3 进入MysqL后重新设置root账号密码:

 

sql指令:

use MysqL   (一定要写上这条语句,很多网上的解决方案缺少这条语句,导致后一条语句出现no database selected错误,这是因为有选择新创建的表所在的数据库

UPDATE user SET authentication_string=PASSWORD(‘你的密码‘) where USER=‘root‘;

5.7之前的版本用:

update user set password=PASSWORD("你的密码") where User = ‘root‘;

指令的大小写都行,注意语句后面分号。

 

分享图片

 

退出MysqLsql指令:quit)并重启MysqL(终端指令:sudo service MysqL restart)

这时候用root账户和修改后的密码登入时(终端指令:MysqL -uroot -p)会发现还是报错!这时候其实密码是修改成功的,但是plugin root 的字段是auth_socket,需要修改过来。

 

4 修改plugin root

 

查看plugin root

用debian-sys-maint账户和密码登入MysqL,然后输入sql语句:

use MysqL

select user,plugin from  user;

 

分享图片

 

修改plugin root

update user set authentication_string =password(‘你的密码‘),plugin=‘msyql_native_password‘ where user=‘root‘;

 

分享图片

 

然后推出并重启MysqL,再用root账户登入就可以了。

 

分享图片

 

 总结:

1 这篇文章是遇到这个问题后查找网上资料整合而成的,网上关于这个问题的资料很多但是也有很多不足:比如指令不够详细,尤其是很多资料缺少使用MysqL时需要use MysqL这个指令的提示,这对小白用户不太友好。再一个,大部分相关文章缺少修改plugin root的部分,所以我折腾了很多遍修改密码但还是不成功。

2 很多时候问题的原因只是一个很小的错误,比如少一个分号,空格,复制密码吧后面的换行符也复制进去了等,所以,尽量减少操作失误。

3 遇到问题多分析反馈的错误原因

4 网上的资料很多,但终究是别人的,不一定能解决自己的问题(但可以提供解决问题思路),遇到问题多查找相关资料,找解决办法,这个过程可能很花费时间很烦人,但是也能拓展不少知识,最后总结理解就能成为自己的东西。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐