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

相关文章

ubuntu退出redis的示例:指定配置文件方式启动源码redis:roo...
ubuntu中mysql改密码忘了的解决方法:1.在终端中切换到root权...
ubuntu安装mysql失败的解决方法原因:可能是原有的MySQL还有...
使用centos和ubuntu建站的区别有以下几点1.CentOS是Linux发行...
ubuntu图形界面和字符界面切换的方法:可以通过快捷键CTRL+A...
ubuntu中重启mysql失败的解决方法1.首先,在ubuntu命令行中,...