Access denied for user ‘root‘@‘localhost‘ (using password:YES)

一、问题

今天navicat连接mysql报了Access denied for user ‘root‘@‘localhost‘ (using password:YES)

图片[1]-Access denied for user ‘root‘@‘localhost‘ (using password:YES)-深吸氧

出现这个报错语句的一般原因是输入了错误的密码,也有可能是是root帐户默认不开放远程访问权限。

相关的解决方法是重新设置密码和修改root用户的远程访问权限

二、解决方案

方案一

1.服务器通过mysql -u root -p 命令登录mysql

2.切换mysql数据库:use mysql;

3.查询用户是否具有远程登录权限:select host,user from user;

图片[2]-Access denied for user ‘root‘@‘localhost‘ (using password:YES)-深吸氧

可以看出root账号只有本地访问权限

4.添加远程访问权限


# 授权所有主机都可以通过root用户,密码123456,进行访问数据库
# 123456:给新增权限用户设置的密码
# %:代表所有主机,也可以具体到主机ip地址
# MySQL 8.0之后的版本,需要先创建一个用户,再进行授权
 
create user root@'%' identified by '123456';
grant all privileges on *.* to root@'%' with grant option;
 
 
#刷新权限
flush privileges;

方案二

1. mysql配置文件把命令:skip-grant-tables ,添加进[mysqld]里面

图片[3]-Access denied for user ‘root‘@‘localhost‘ (using password:YES)-深吸氧

2.重启mysql服务

3.通过命令行进入MySQL的bin目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。

4.执行“use mysql;”,使用mysql数据库。

5.执行select user,host from user;查询是否存在匿名用户,有的话删除匿名用户。

6.执行:update user set password=PASSWORD(“123456”) where user=’root’;(修改root的密码)

7.打开mysql配置文件,删除“skip-grant-tables”,保存并关闭文件。

8.重启mysql服务

© 版权声明
THE END
请撒泡尿证明你到此一游
点赞1 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容