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

win10安装了mysql8.0(.12)后,没怎么用过。今天要用时,发现连接不上。并报错:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
原因:密码记错了或者不记得密码
在网上找到了一种方法:在mysql安装的目录下,找my.ini文件。在[mysqld]下 添加skip-grant-tables保存。打开终端,执行mysql -u root -p后,若出现输入密码,直接回车,即可连接数据库。然而,我依旧报了如上的错误信息。
解决办法:(以下操作以管理员身份运行)
1.先修改my.ini文件,在【mysqld】段下面加入skip-grant-tables,并关闭mysql服务。
2.切换到mysql的bin目录下。
3.使用mysqld --defaults-file=" my.ini配置文件的路径" -console -skip-grant-tables
4.执行mysqld --console --skip-grant-tables --shared-memory,注意执行后不要关闭这个终端。
再重新开一个终端,执行以下命令:

//转到mysql安装目录
1.cd 你的mysql安装位置的bin目录下
//输入mysql
2.mysql
//查看所有数据库
3.show databases;
4.use mysql;
//查看数据库密码 我的mysql版本为8.0.12 执行这条命令后 显示的密码是加密后的密文
5.select user,host,authentication_string from user ;
//刷新权限
6.flush privileges
//更改密码 注意mysql8.0以上密码策略改变 新密码格式为:大写字母+小写字母+特殊符号+数字否则密码不生效
7.ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
//离开数据库
8.quit

执行完上述命令后可以再次连接数据库看是否可以成功。
关闭两个终端,删除或注释my.ini的skip-grant-tables。

进入cmd.exe
执行mysql -u root -p,发现报错:ERROR 2003: Can't connect to MySQL server on 'localhost' (10061) 这是因为在第一步是,我们关闭了mysql服务。
此时,重新开启该服务,再次执行mysql -u root -p,连接成功。
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值