遇到的问题
在安装了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就可以了。
原文连接: