localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!

(文章前面部分是出现的问题和原理,还有我解决的思路,如果闲啰嗦可以跳到结尾

昨天下班前关闭自己的笔记本时系统在更新,之后请同事等它更新完毕帮我把显示屏合上!

今儿早上班时候想到数据库里面查看一下数据,使用SQLyog连接mysql的时候先是提示

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password)

随着在网上照着教程把数据库密码改了一下,然后能登陆了,等我在命令提示符中登陆之后show databases;的时候:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第1张图片

我自己的数据库跑哪去了?

全不见了?被我删了?啥时候删的?

然后我不信,我又使用SQLyog连接登陆mysql:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第2张图片

还是没有我的数据:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第3张图片

那时候我开始方了!

但是早上我调试项目的时候明明可以连上数据库的!

演示一下某个项目的登陆功能:

登陆功能也能使用,底下也有能执行的sql语句啊!

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第4张图片

登陆成功:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第5张图片

那说明我的数据库真实存在,并没有被删除,所以到底发生了什么?

会不会是登陆mysql出问题了!

我看了一下我项目中连接数据库的配置部分:

这是啥意思呢?就是是它连接的是127.0.0.1本机地址(本机服务器)

而我使用SQLyog连接的时候:

它连接的是localhost本地服务器

一个连接的是127.0.0.1本机地址(本机服务器)能访问我之前的数据库;

一个连接的是localhost(本地服务器)不能访问我之前的数据库;

问题应该就处在这儿了!

那么,这两个东西是不是相同的东西呢?

我在命令提示符里面:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第6张图片

他妹妹的,根本就不是同一个东西,所以我们在命令提示符里面连接mysql的时候根本就没连上127.0.0.1本机地址(本机服务器),同样的在SQLyog里面也没连上127.0.0.1本机地址(本机服务器),咱们连的是一个叫localhost的::1的本地服务器!

随即我便在使用SQLyog连接的时候:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第7张图片

然后:

localhost连接mysql没有自己的数据库显示,但是127.0.0.1连接mysql则有自己的数据库显示!_第8张图片

解决了!

 

 

闲啰嗦的观众姥爷看过来:

当某一天你的电脑更新或者说你自己配置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就好了!

 

你可能感兴趣的:(Q&S)