(文章前面部分是出现的问题和原理,还有我解决的思路,如果闲啰嗦可以跳到结尾)
昨天下班前关闭自己的笔记本时系统在更新,之后请同事等它更新完毕帮我把显示屏合上!
今儿早上班时候想到数据库里面查看一下数据,使用SQLyog连接mysql的时候先是提示:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password)
随着在网上照着教程把数据库密码改了一下,然后能登陆了,等我在命令提示符中登陆之后show databases;的时候:
我自己的数据库跑哪去了?
全不见了?被我删了?啥时候删的?
然后我不信,我又使用SQLyog连接登陆mysql:
还是没有我的数据:
那时候我开始方了!
但是早上我调试项目的时候明明可以连上数据库的!
演示一下某个项目的登陆功能:
登陆功能也能使用,底下也有能执行的sql语句啊!
登陆成功:
那说明我的数据库真实存在,并没有被删除,所以到底发生了什么?
会不会是登陆mysql出问题了!
我看了一下我项目中连接数据库的配置部分:
这是啥意思呢?就是是它连接的是127.0.0.1本机地址(本机服务器);
而我使用SQLyog连接的时候:
它连接的是localhost本地服务器!
一个连接的是127.0.0.1本机地址(本机服务器)能访问我之前的数据库;
一个连接的是localhost(本地服务器)不能访问我之前的数据库;
问题应该就处在这儿了!
那么,这两个东西是不是相同的东西呢?
我在命令提示符里面:
他妹妹的,根本就不是同一个东西,所以我们在命令提示符里面连接mysql的时候根本就没连上127.0.0.1本机地址(本机服务器),同样的在SQLyog里面也没连上127.0.0.1本机地址(本机服务器),咱们连的是一个叫localhost的::1的本地服务器!
随即我便在使用SQLyog连接的时候:
然后:
解决了!
闲啰嗦的观众姥爷看过来:
当某一天你的电脑更新或者说你自己配置TCP/IPv4IP地址之后,出现连不上自己的mysql数据库提示:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password)
可能是因为某些原因导致你的localhost变成了::1而非127.0.0.1,这时候使用命令提示符分别ping一下localhost和127.0.0.1,如果二者是相同的那么你就可以问其他人我这篇文章解决不了了;当二者不同的时候,就有可能是你连接mysql的时候没能连上本机服务器即你安装mysql数据库时的服务器,所以这时候你只要将连接mysql的地址设置成127.0.0.1(安装mysql时的服务器地址)再使用你原来的账号密码登陆就好了!
操作1:使用可视化工具连接mysql的时候SQL主机地址使用127.0.0.1(安装mysql时的服务器地址)而非localhost;
操作2(原理上是这样的,我没操作过,因为我用的是操作1):在hosts文件中(C:\Windows\System32\drivers\etc文件夹下)设置localhost为127.0.0.1,再重新启动mysql服务再连接mysql就好了!