之前过MySQL数据库,当时设置的初始密码为123456。后来因为暂时不需要使用,所以直接把MySQL服务给关了。期间是否修改过密码我已经记不清了。

最近有需要再次使用MySQL,因此尝试用Navicat for MySQL连接原有服务,结果连接不上。具体报错信息当时没存。

尝试使用命令行连接,输入 mysql -u root -p。结果报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

昨天晚上反复尝试,甚至将原有的MySQL80服务删除再生成,都没有解决问题。

今天早上重新思考。

 

通过阅读这篇教程https://www.cnblogs.com/zhongyehai/p/10695334.html,我了解到,该报错的主要原因是我输入的密码错误。

而后通过这篇教程https://blog.csdn.net/Programmer_FuQiang/article/details/97271896,终于成功连接。

主要操作步骤:

  1. 到mysql server的安装目录下,把data文件删掉。(我最开始看的时候,我的对应目录下根本没有data文件,也是很奇怪)
  2. 在管理员权限下运行cmd命令窗口,执行 mysqld --initialize --console 命令。如果该命令正确执行,没有报错,会回复你一个密码初始值。
  3. 输入 net start MySQL80 启动 MySQL80服务(这个服务是我一开始创建的,好像大部分人的服务名为mysql,我这里是MySQL80)
  4. 然后输入 mysql -u root -p,密码就输入第2步执行命令后产生的密码。(注意密码左右没有空格)
  5. 在mysql> 命令行下,输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';  (一定要有;符号),修改密码
  6. 通过 show databases; 可以看到当前服务器中的 数据库。

MySQL连接报错:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

主要几个坑:

  • 我的MySQL装在C盘中,对它进行修改要提供管理员权限,所以cmd也必须是在管理员权限下运行。
  • 之前不知道为什么,即使开了管理员权限,对data文件夹的修改也执行不成功。反正昨天晚上一通折腾之后我是重启了一下电脑。

 

相关文章: