linux服务器本地的mysql数据库访问报Access denied for user'root'@'localhost' (using password: YES)问题

关于这个问题参考了很多篇文章,但是很多说的并不全面,在此总结一下,以作记录

1.找到etc文件下my.cnf配置文件,然后添加 skip-grant-tables,具体操作如图:

 

我已经做过了,所以将此处注释掉了,省的下次还得输入,具体操作步骤就是vim打开该文件然后 i 进入编辑模式,将该段复制粘贴,然后 esc, :wq 保存退出

2. 完成第一步操作后,就可以重启mysql服务了,关于mysql的 启动,停止,重启命令如下,如想了解更多请自行百度:

  service mysqld start; //启动命令
  service mysqld stop; //停止命令
  service mysqld restart: //重启命令

3. 将mysql重启后,此时就可以直接免密登录了直接使用 mysql 命令,效果如图所示:

  

此时已成功进入了mysql。

4. 将密码重置操作,进入了mysql就可以对密码进行操作了,此时进入mysql库对user表的 authentication_string 字段进行更改(5.7以后版本),sql如下:

  update user set password=PASSWORD("你的密码") where User = 'root';
  //5.7及以后的版本使用该sql
  update user set authentication_string=PASSWORD("你的密码") where User = 'root';

5.完成上一步操作后,此时只需 flush privileges; 然后 exit 退出,将my.cnf中的那段skip-grant-tables注释掉, 重启就好了。

6.如果第五步完成以后还出现该问题说明不是你的密码出现了问题而是你的root账户的授权出现了问题,此时可以尝试使用 navicat 等数据库连接工具尝试远程连接,然后查看mysql库的user表,复制该表中的第一条记录,然后新增,复制粘贴,形成第四条记录,然后对host字段的值进行更改即可如图所示:

  

7.至此该问题完美解决了。

参考文章有:

https://www.cnblogs.com/boris-et/p/8316953.html

https://www.jb51.net/article/58939.htm

 

 



 

 

posted @ 2020-10-09 15:50  xdq123  阅读(442)  评论(0编辑  收藏  举报