Navicat错误:Can't connect to local MySQL server through socket以及localhost 与127.0.0.1的区别
在本地使用Navicat连接MySQL数据的时候出现错误如下:
2002 - Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13 "Permission denied")
解决方法:localhost 改成127.0.0.1就好了。
在以往的认知里,localhost和127.0.0.1是一回事,经过检索,发现这两个还是有区别的,记录如下:
一、原理不同
localhot的原理是不经网卡传输,不会受到网卡协议的限制。设置程序时本地bai服务用localhost,localhost不会解析成IP,也不会占用网卡、网络资源。
127.0.0.1的原理是经过网卡传输的,依赖网卡协议,并受到网卡相关协议的限制。使用IP访问的时候,等于本机是通过网络再去访问本机,会涉及到网络用户的权限。
二、概念不同
localhost:也可以叫是local,正确的解释是:本地服务器的意思。它可以被配置为任意的IP地址可以通过hosts这个文件进行更改,不过通常情况下都指向:127.0.0.1
127.0.0.1:在windows系统的正确解释是:本机地址的意思。127.0.0.1是保留地址之一,用来检验本机TCP/IP协议栈,可以Ping回送地址。如果回送地址Ping不通,就说明IP堆栈出了故障。如果通的话,表明网络出了问题。
三、指向不同
localhost 是一个保留域名(RFC 2606) ,为了避免同狭义定义主机名混淆而单独列出。它不仅指向 127.0.0.1 这个IP地址,它同时还可以指向ipv6 的地址 。
127.0.0.1 是回送地址,指本地机,测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。
如此看来,Navicat15工作是需要经过网卡的,所以使用127.0.0.1。
版权声明:本文由一缕残魂发布,如需转载请注明出处。