多语言展示
当前在线:1189今日阅读:4今日分享:26

MySql主机127.0.0.1与localhost有什么区别?

在使用mysql的过程中,可能很多朋友都会遇到一个问题:127.0.0.1和localhost是一样的吗?但是有时候你会发现,使用localhost连接不上,而换成127.0.0.1之后又可以正常连接了;如果不一样,那它们之间到底有什么样的区别?下面小编给大家讲解一下。
工具/原料

MySql

方法/步骤
1

mysql -h 127.0.0.1的时候,使用的是TCP/IP连接,此时,mysql server会认为,该连接来自于127.0.0.1或者是'localhost.localdomain'

2

mysql -h localhost的时候,使用的是Unix socket,而不是TCP/IP连接,所以这个时候,mysql server则会认为该client是来自'localhost'

3

mysql权限管理中的'localhost'有特定含义:注:虽然前面两者存在着连接方式上的区别,但是当localhost为默认的127.0.0.1的时候,两种连接方式所使用的权限记录都是下图中1.row的记录,因为记录在前,所以会先被匹配。

4

之前在搭建安装Linux环境时,出现了一个问题,服务器是apache,数据库是mysql,写了一段php连接数据库的测试代码的页面,代码如下:$mysql = mysql_connect('localhost','root','');

5

浏览器中输入http://localhost/ceshi.php进行测试时报错,提示:Can’t connect to local MySQL server through socket...

7

当然,遇到了问题解决不了是不会罢休的,于是又进行了各种尝试,后来,尝试到了将localhost改成127.0.0.1后,竟然连接成功了,而此时并不知道ocalhost和127.0.0.1是有区别的,所以一时陷入思考困局。--ping localhost 地址是127.0.0.1没错;--打开hosts,加入127.0.0.1 qttc,使用qttc当主机也能正常连接,唯独就不认localhost为了搞清楚两者的区别,于是翻阅了大量的关于两者的资料,这才了解了上面的步骤二中的两种连接方式,这是linux套接字网络的特性,win平台不会有这个问题。

8

最终解决方法:在my.cnf的[mysql]区段里添加 protocol=tcp保存-->重启mysql,问题解决。

推荐信息