服务器安装了mysql5.7后,想mysql -uroot -p登录,结果出现了Access denied for user ‘root’@‘localhost’ (using password: YES)(图1所示),意思就是使用密码登录被mysql数据库拒绝了,心想被女生拒绝还能忍,连mysql也拒绝我,然后就咔咔一顿操作解决了问题。
在这里插入图片描述

图1

1.Access denied可能原因

1.1 mysql没有正确启动

解决办法:重启MySQL服务器:net start mysql

1.2 mysql的配置文件错误–my.ini等文件

解决办法:如果my.ini误输入,只能替换或者找出错误地方

1.3 root用户的密码错误

这是我们最常出现的问题,也是我出现的问题,下面会详细讲解我解决的过程

2. 修改my.ini配置文件,进行无密码登录

找到mysql安装目录下的my.ini文件,有些mysql的版本可能没有,也可以自己创建一个,打开my.ini文件后在[mysqld] #服务端基本设置下加上skip-grant-tables,就可以免密登录(图2所示)

在这里插入图片描述

图2

3. 重启mysql,免密登录mysql

net stop mysql 关闭mysql;net start mysql 开启mysql即可实现重启mysql,输入mysql -uroot -p再次登录直接回车,不需要输入密码(图3所示)
在这里插入图片描述

图3

4. 重新设置root用户密码

进入mysql后输入指令重置密码(图4所示),我的mysql是5.7版本输入:

update mysql.user set authentication_string=password("你的密码") where user="root";

mysql8输入:

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

在这里插入图片描述

图4

4. 删除my.ini配置文件中skip-grant-tables,重新使用新密码登录mysql

我们重置密码后需要删除my.ini配置文件中skip-grant-tables,重新密码登录mysql就成功了(图5所示)
在这里插入图片描述

图5
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐