事情起源
前天晚上好好的,第二天打开电脑正要开始写垃圾代码时,发现项目启动报错了,看了一下,发现是数据库连不上,我一脸懵逼,只能到万能的互联网上面查询解决方法,最后经过从不同的资料中汲取知识,最终成功解决了问题。这篇文章用来记录本人解决问题过程中出现的问题并进行解决的过程,方便后续再出现相同问题时可以不费吹灰之力就能解决掉。
说明
- 本人mysql版本为
mysql-8.0.27-winx64
,其他的版本不保证一定能成功 - 本文解决的方式是:重置MYSQL的
root
账户对应的密码
操作
一、打开一个cmd窗口,关闭mysql服务
二、使用管理员权限打开cmd窗口,跳过权限验证
首先进入mysql安装包的bin目录下面,然后执行如下命令来
mysqld --console --skip-grant-tables --shared-memory
三、新建第三个cmd窗口(管理员权限打开),无密码进入mysql,并清空密码
看到Enter passowrd直接爱搭不理,回车就可以连接Mysql。连接Mysql之后,使用update user set authentication_string='' where user='root';
命令将mysql数据库的root用户对应密码清空。
安装好Mysql的时候,Mysql就自带了一些数据库,如下图所示,这些数据库用来存储Mysql的用户信息以及其他配置信息。我们这一步的目的就是将mysql数据库的root用户对应密码清空,这样下次使用root账户连接数据库时就可以不用密码。
四、关闭前面的cmd窗口(管理员权限打开),无密码进入mysql,并重置密码
前面一切顺利,当我要修改密码的时候,又给我报错了,说我密码太简单,开玩笑,“12345678”还简单,算了,只能修改mysql的规则了
使用show variables like "%validate%";
打开配置信息看看
发现policy是中等验证的,意味着对密码的要求比较严格
那用如下命令就把policy改成低级的吧
set global validate_password.policy=0;
再次执行show variables like "%validate%";
发现修改完成了
总算可以修改密码了,开搞
啊这,又报错,我心态崩了啊。最后在查了其他资料之后,发现了新的修改方法
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '12345678';
泪目,终于修改完成了
修改完成之后,终于可以正常登录了,又可以开心地写垃圾代码了(*^▽^*)