记录一次Windows 7环境下MySQL 5.7 报错ERROR 1045问题的解决

问题产生

在使用MySQL client连接MySQL server的时候出现了输入密码闪退的情况,当时网上到了一篇博文,就一顿操作猛如虎的输入了一堆命令,结果似乎造成了更大的麻烦,大致操作如下:

在MySQL安装的bin目录先打开cmd,依次输入命令:
mysqld --install
mysqld --initialize --user=root --console(这一步产生了一个临时密码,但是后面试了并不管用)
尝试使用mysql、mysql -u root password 加临时密码的方式都没有进入MySQL

记录一次Windows 7环境下MySQL 5.7 报错ERROR 1045问题的解决
之后尝试多个可能的密码都无法进入MySQL。
记录一次Windows 7环境下MySQL 5.7 报错ERROR 1045问题的解决
再次求助网络,发现可能的原因有:

1)mysql的服务器停止
2)用户的端口号或者IP导致
3)mysql的配置文件错误----my.ini等文件
4)root用户的密码错误

尝试了在my.ini文件中,在mysqld下,添加 skip-grant-tables 等方案没有效果。

解决方法

在bin目录下,打开cmd,输入:

mysqld --skip-grant-tables
此时当前cmd窗口卡主,新开一个cmd,输入mysql,进入mysql命令行
update user set authentication_string=password(“newpassword”) where user=“root”
flush privileges
(上面两步重置MySQL的root密码)
重启MySQL服务

5.7之前版本,user表中authentication_string字段为password,5.7版本改为了authentication_string
这样就可以正常进入MySQL服务了,但是最上面开始尝试的操作重置了mysql,只能看到系统自带的数据表了。

记录一次Windows 7环境下MySQL 5.7 报错ERROR 1045问题的解决
在MySQL环境下遇到ERROR 1820可以参考Stack Overflow的一个回答:
记录一次Windows 7环境下MySQL 5.7 报错ERROR 1045问题的解决

参考别人博客时要多看多思考避免盲目操作呀

参考

[1]. https://blog.****.net/qq_36675754/article/details/81381341
[2]. https://blog.****.net/weidong_y/article/details/80493743
[3]. https://blog.****.net/donghustone/article/details/79633932