今早起来,突然发现自己的mysql和navicat链接不上了,输入正确的密码也显示的是连接不上,查了很多资料,这里记录一下。
说明下系统是win10,mysql版本是8.0.14
下载完mysql后,无论如何也无法登录进去,花了小半天时间才弄明白如何成功登录。
首先遇到了以下问题
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
不输入密码的话会是这样
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
几乎全网的解决方案都是要修改my.ini,在mysqld下面添加skip-grant-tables,保存退出。
之后重启mysql服务:
在命令行输入net stop mysql 关闭mysql服务
再输入net start mysql 开启mysql服务
如果出现服务已经启动成功,那么恭喜你,你离成功近了一步。请继续往下看。
如果出现MySQL服务无法启动,服务没有报告任何错误,那就请继续往下看。
我尝试的大部分情况时出现服务已经启动成功,但是我发现我高兴得太早。
输入mysql -u root -p后,在需要密码时直接Enter就好了,因为之前加的那句话意思是跳过密码。
到此步如果成功进入了,就不用往下看了,恭喜你们。
然而我遇到了下一个ERROR:
ERROR 2003 (HY000):Can’t connect to MySQL server on ‘localhost’ (10061)
从网上查了下,发现是因为服务没有开启。诶?我不是明明成功开启了吗?
于是我又打算关闭服务,重新开启。
然而得到了如下反馈。
兜兜转转回到原地。
解决办法:
这时候可以这样处理
(注意 删除之后里面的数据就没有啦 提前备份一下)
打开你的安装路径,看里面有没有data文件夹。
有的话,把它删掉。
之后在命令行输入
mysqld --initialize --console
会出一大片东西,其中有一行有以下信息
…
2018-04-20T02:35:05.464644Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dhaDHd<sd:
…
后面那串字符就是你的initialize的密码。
之后使用这个密码去登录 然后再修改为自己的密码
执行语句,
执行alter user root@localhost identified by '123456';
语句,把密码修改为123456(这里填自己想要的密码)。
花费了一早晨,也踩了许多坑,特此记录一下,如果文章有帮助,不妨点赞,关注一下,谢谢!