PHP连接本地数据库用localhost还是127.0.0.1?

之前看很多朋友谈论本地MySQL数据库的连接讨论用localhost还是用127.0.0.1比较好,最近也在研究这块的方案,正好跟大家分享一下相关的知识。

两者分析

连接方式

linux系统下localhost是使用UNIX套接字连接,127.0.0.1使用的TCP/IP协议方式进行连接。

windows系统下localhost是先进行本地HOST解析,然后走TCP/IP协议进行连接,127.0.0.1直接使用TCP/IP协议进行连接。

连接速度

linux系统下套接字的连接速度要快于TCP/IP速度。所以localhost127.0.0.1快。

windows系统下localhost要先进行解析才能进行TCP/IP连接。所以127.0.0.1localhost快。

总结

如果在linux系统,推荐使用localhost进行数据库连接,如果在windows系统推荐127.0.0.1

PS: 现在大多数大型项目系统数据库已经跟程序不在同一台服务器上,此说明只是针对数据库跟程序在同一台服务器上的介绍。

PHP官方推荐

Note:
Whenever you specify "localhost" or "localhost:port" as server, the MySQL client library will override this and try to connect to a local socket (named pipe on Windows). If you want to use TCP/IP, use "127.0.0.1" instead of "localhost". If the MySQL client library tries to connect to the wrong local socket, you should set the correct path as in your PHP configuration and leave the server field blank.

参考连接

http://php.net/manual/en/function.mysql-connect.php#refsect1-function.mysql-connect-notes

http://stackoverflow.com/questions/3715925/localhost-vs-127-0-0-1

本文已经被查看618次

发表评论

电子邮件地址不会被公开。 必填项已用*标注