解决Access denied for user ‘root’@’localhost’ (using password: YES),亲测有效

错误:1045
解决方法:

  1. 以管理员身份运行cmd,进入Mysql安装目录下的bin目录下
    @:下面还要再打开cmd窗口,为方便区别,此窗口记为cmd-A窗口
  2. 运行net stop mysql ,停止Mysql服务
  3. 运行mysqld -nt --skip-grant-tables,使得在登录时可以跳过登录密码
    以上三步正常运行后该cmd窗口应该处于静止不动,光标闪烁的状态
    在这里插入图片描述
  4. 打开另一个管理员的cmd窗口   @:此窗口记为cmd-B窗口
  5. 运行mysql -uroot -p回车,出现Enter password:直接回车,成功进入了mysql
  6. 可以运行以下命令来修改密码:
use mysql;   -- 使用mysql数据库
update user set authentication_string=password('mysqladmin') where user='root'; 
--更新root的密码为mysqladmin ,显示Query OK则修改成功。
update user set authentication_string='mysqladmin' where user='root'; 
-- 不推荐,这种方式就是将密码明文不经过加密直接显示在数据库中。

经过以上6步后,已经成功的修改了数据库登录密码。接下来是再次尝试登录。

  1. 关闭cmd-A窗口 (输入了skip-grant-tables的cmd)
  2. 关闭任务管理器中的进程mysql.exe(任务管理器->详细信息->进程->找到mysql.exe(大约占150M内存)->关闭)
  3. 在cmd-B窗口中输入net start mysql
  4. 输入mysql -uroot -p,敲入新的用户名、密码 即可登录成功

若还是不能登录,或出现错误1130。则是权限问题 (或 host问题),以下为权限为题的解决方法:
错误:1130
解决方法:

  1. 按以上方法跳过验证进入数据库
  2. 在mysql>中执行flush privileges;刷新权限
    (不执行这步会出现在skip-grant-tables模式下不能授权的问题)
  3. 执行grant all privileges on *.* to root@'localhost' identified by 'mysqladmin';为root用户授权
  4. 关闭cmd和mysql.exe进程,启动mysql服务net start mysql,重新登录mysql -uroot -p即可成功

文章来源

发布了19 篇原创文章 · 获赞 20 · 访问量 9535

猜你喜欢

转载自blog.csdn.net/qq_39323164/article/details/104139335