之前过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,终于成功连接。
主要操作步骤:
- 到mysql server的安装目录下,把data文件删掉。(我最开始看的时候,我的对应目录下根本没有data文件,也是很奇怪)
- 在管理员权限下运行cmd命令窗口,执行 mysqld --initialize --console 命令。如果该命令正确执行,没有报错,会回复你一个密码初始值。
- 输入 net start MySQL80 启动 MySQL80服务(这个服务是我一开始创建的,好像大部分人的服务名为mysql,我这里是MySQL80)
- 然后输入 mysql -u root -p,密码就输入第2步执行命令后产生的密码。(注意密码左右没有空格)
- 在mysql> 命令行下,输入 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; (一定要有;符号),修改密码
- 通过 show databases; 可以看到当前服务器中的 数据库。
主要几个坑:
- 我的MySQL装在C盘中,对它进行修改要提供管理员权限,所以cmd也必须是在管理员权限下运行。
- 之前不知道为什么,即使开了管理员权限,对data文件夹的修改也执行不成功。反正昨天晚上一通折腾之后我是重启了一下电脑。