mysql5.7报Access denied for xxx@localhost 的解决

使用root用户登录mysql数据库若如下报错

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

我使用的是阿里云新出的轻量应用服务器,选择的预装应用为 LAMP6.1.0,数据库是mysql5.7

解决方案:

在终端A 进入root用户:

1.执行命令   systemctl stop mysqld     停止mysql服务

2.找到你的mysql命令路径   mysqld_safe --skip-grant-tables   (注意:执行后会卡在终端A上)

在终端B 也进入root用户:

3.找到你的mysql命令路径,直接   mysql     就可以进入数据库了

4.在mysql执行命令    use mysql;  切换进入mysql这个数据库

5.在数据库mysql内,执行命令  

update user set authentication_string=password("123456") where User="root" and Host = "localhost";

更改root密码为123456,注意authentication_string 是我5.7版的密码字段,有些同学的mysql的密码字段可能仍是password,究竟是哪个请 select columns from user; 查一下。并且我5.7版的user表是双键User和Host,所以必须同时where两个字段否则报错;而有些同学的可以不用Host这个字段所以你可以试一下。因此下面是网上比较流传的版本:

 update user set password=password("123456") where user="root"; 

6.在mysql执行命令   flush privileges;  使配置参数生效

7.退出数据库  exit;  or   quit; 

8. systemctl restart mysqld  启动数据库

9.你就可以使用root 123456登录数据库啦!!!

猜你喜欢

转载自www.cnblogs.com/errorplayer/p/9784804.html