mysql ERROR 1045 (28000): Access denied for user解决方法-Windows平台

遇到的问题

在安装了AppServ之后,登录mysql的时候一直报这个错误。

F:\AppServ\MySQL> mysql -u root -p

Enter password:

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

解决方案

一、配置成无需密码登录

  先打开mysql的配置文件my.ini,例如我的安装路径是F:\AppServ\MySQL\my.ini,用编辑器打开即可,搜索[mysqld] (注:括号不能少),在其下面加入一行 skip-grant-tables,保存退出后重启mysql。

重启mysql的步骤:

1.点击“开始”-->“运行”(快捷键win+R)。

2.停止mysql命令:net stop mysql。

3.启动mysql命令:net start mysql。

以上步骤完成mysql重启成功。

下面进入cmd里面输入 mysql -u root -p 回车,出现password后直接回车,不用输入密码。现在我们就进入了mysql,不再报错了,但是现在只能使用mysql的一部分功能,因为我们没有权限(grant)。我们需要重新去更新一下mysql的root用户的登录密码。

二、更新密码

1. 进入mysql

mysql> use mysql;

输出:Database changed

2.给root用户重新设置密码,密码自定义

mysql> update user set password=password("你自己设置的密码") where user="root";

如果报了错误说没有找到password这个字段,可以用另外一个字段(5.7.xx版本以后好像是需要改成authentication_string)

mysql> update user set authentication_string=password("你自己设置的密码") where user="root";

输出: Query OK,1 rows affected (0.01 sec)

Rows matched:1 Changed:1 Warnings: 0

有以上输出证明修改成功。

3.刷新数据库

mysql>flush privileges;

输出:Query OK, 0 rows affected (0.00 sec)

4.退出

mysql>quit

输出:Bye

 改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql就可以了。
 

原文连接:


mysql ERROR 1045 (28000): Access denied for user解决方法

你可能感兴趣的:(mysql ERROR 1045 (28000): Access denied for user解决方法-Windows平台)