解决MySQL的ERROR 1045 (28000)问题

问题描述

在Win10 x64下安装mysql-5.7.11之后,使用root登录mysql时候,显示如下:

C:\MySQL> mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

解决方法

  1. 修改配置文件:我的例子里面是my.ini,在[mysqld]的下一行添加skip-grant-tables,如下样子
    [mysqld]
    skip-grant-tables
    保存后退出
  2. 重启mysql服务:用管理员权限打开命令行,执行:
    C:\MySQL> net stop mysql
    停止服务后再启动服务
    C:\MySQL> net start mysql
  3. 使用root登录,密码为空,命令行如下:
    mysql> mysql -u root -p
    已经可以登录进去了
  4. 使用数据库mysql:
    mysql> use mysql
  5. 修改root的密码:
    mysql> update user set authentication_string=password("new_password") where user="root";
  6. 刷新:
    mysql> flush privileges;
  7. 退出登录:
    mysql> quit
  8. 将第1步中添加的skip-grant-tabels删除并保存退出
  9. 如第2步重启mysql服务,使用修改后的密码连接