数据库突然连接不上;
一、停止MySQL,语句:net stop mysql
二、mysqld --skip-grant-tables启动 MySQL 服务的时候跳过权限表认证,如下图即可
这里注意,一定要是管理员模式

三、cmd打开新的窗口,输入mysql 回车,在输入use mysql回车,如下图

四、
1、如果你是忘记密码,则直接修改密码即可;键入命令:update mysql.user set authentication_string=password('123456');
123456是你要修改成的密码;
修改密码后刷新权限:flush privileges;

quit 退出
然后启动数据库:net start mysql;启动数据库前先关闭一开始另一个窗口的命令,直接关掉窗口即可,不然会提示服务无法启动;
再执行 mysql -u root -p 输入密码即可进入;步骤如下图

2、如果你的密码是正确的,则提示为;using password:YES(本人这次的问题)

查询登录用户的授权列表 select host, user from user;
我是本地没登陆上,所以我直接执行第二条grant all privileges on *.* to 'root'@'localhost' identified by '123456';;执行后发现报错;百度了一下,发现这条语句改成grant all privileges on *.* to root@'%'identified by 'password';就可以了;
以下截图来自这篇文章:https://blog.csdn/qq_36735409/article/details/78032144

改了之后再查看,发现多了箭头部分

最后
quit 退出
然后启动数据库:net start mysql;启动数据库前先关闭一开始另一个窗口的命令,直接关掉窗口即可,不然会提示服务无法启动;
再执行 mysql -u root -p 输入密码即可进入成功

更多推荐

连接数据库出现错误:1045-Access denied for user ‘root‘@‘localhost‘