玩耍springcloud项目(其实是被血虐=,=),本来想打开SQLyog查看数据库的实时情况,结果开开心心的打开,骂骂咧咧的退出来。为啥呢?这家伙竟然不让我登录数据库了!!!
啥原因?看错误信息知道他说我输入的密码不正确。可是我根本就没动过密码呀?
于是我又在cmd下尝试登录mysql,结果还是报同样的错误。。。
(当时没截图,在网上随便找了张报同样错误的图)
没办法啊,只能去网上寻求大神们的帮助,结果大多数都是说要在my.ini文件的[mysqld]后添加skip-grant-tables,之后还接了一大串操作。可是。。。在我这mysql8.0版本根本就行不通啊!!!(可能是我的操作有问题)。最后实在没办法了,只能上大招了!!!
局限方法(不建议使用)
现在是重头戏:来到安装mysql的目录下,将data文件夹删除
之后打开命令行,cd 到mysql的bin目录,执行mysqld --initialize --console
命令
之后会对数据库进行初始化操作,其中有一个像乱码一样的临时密码,在这行语句后面:[Server] A temporary password is generated for root@localhost:xxxx很重要,一定要记下来,要不就做无用功了
之后打开cmd输入mysql -uroot -p输入这个密码,就可以登录数据库了!!!登录后别忘了修改密码哦~
附执行修改密码的命令:alter user'root'@'localhost' identified by '新密码';
之后,打开SQLyog,输入root用户名与你设的密码
Connect!
问题解决。
猜测方法(亲测有效)
以下是猜测的可能原因,也许是因为mysql默认端口3306被占用了,用netstat -ano
查看端口状态然后根据pid去任务管理器关闭全部3306进程然后去计算机管理页面重启MySQL服务即可
进行此操作后我的mysql就可以顺利登录了
PS:两个mysql服务应该只启动一个,不然会发生冲突,这可能也是原因之一,但未经实验,不清楚真实性
(如果还有什么更有效的解决方案,还恳请各位大佬告知本菜鸡啦!!)