localhost与mysql_connect()中的127.0.0.1

时间:2010-09-15 08:33:13

标签: php mysql

  1. localhost中使用mysql_connect()是否比使用127.0.0.1更快地建立连接?
  2. PHP脚本和mySQL之间的连接类型是什么(使用mysql_connect()函数时)?是TCP / IP吗?

7 个答案:

答案 0 :(得分:65)

  1. Windows和Linux之间存在差异。如果使用unix域套接字,它将比使用TCP / IP略快(因为你的开销较少)。
  2. Windows正在使用TCP / IP作为默认设置,而如果选择localhost,则Linux尝试使用Unix域套接字,如果选择127.0.0.1,则尝试使用TCP / IP。

答案 1 :(得分:15)

“localhost”表示本地套接字连接,而127.0.0.1是TCP / IP。是的,套接字比TCP / IP更快。

引自http://pl.php.net/mysql_connect

  

每当您指定“localhost”或“localhost:port”作为服务器时,MySQL客户端库将覆盖此并尝试连接到本地套接字(Windows上的命名管道)。如果要使用TCP / IP,请使用“127.0.0.1”而不是“localhost”。如果MySQL客户端库尝试连接到错误的本地套接字,则应在PHP配置中设置正确的路径,并将服务器字段留空。

答案 2 :(得分:13)

不,建议使用127.0.0.1,因为Windows 7在IPv6和Linux之间选择存在问题。 IPv4的。我尝试了这个,如果我使用localhost,页面重新加载大约1秒(1,04秒),当我使用127.0.0.1时,页面重新加载50毫秒。两者都在Windows 7下使用 在Windows XP中它没有区别。

答案 3 :(得分:0)

Php网站说:

注意:

  

每当指定“localhost”或   “localhost:port”作为服务器,MySQL   客户端库将覆盖此和   尝试连接到本地套接字   (在Windows上命名管道)。如果你想   要使用TCP / IP,请改用“127.0.0.1”   “localhost”。如果是MySQL客户端   库试图连接错误   本地套接字,你应该设置   像PHP一样正确的路径   配置并离开服务器   场空白。

我猜速度差太小了,你不应该担心它。

答案 4 :(得分:0)

对于Unix,之后添加到客户端块 [client] 在/etc/mysql/my.cnf这一行:

protocol=tcp

答案 5 :(得分:0)

localhost 不是更快,而是慢了一点。

话虽如此,如果您正在连接到其他人;抓住我的漂移?

谁说连接的哪一边更难失败?没有人。那个:

127.0.0.1 比 localhost 的 ping 速度更快。在任何终端上尝试。

答案 6 :(得分:-1)

对于mac,这是解决方案:

在MAC上使用localhost而不是127.0.0.1连接到MySQL。很长一段时间以来,我一直在使用127.0.0.1在我的开发平台上连接MySQL,因为出于某种原因,localhost无法正常工作。原来是因为127.0.0.1使用TCP / IP而localhost使用套接字。 php.ini文件指向mysql.sock的错误位置所以你所要做的就是更改它,重新启动apache并瞧!

Open php.ini: /private/etc/php.ini
Find the following line: mysql.default_socket = /var/mysql/mysql.sock
Replace with: mysql.default_socket = /tmp/mysql.sock
Restart apache: apachectl restart

注意:如果您没有php.ini文件,则需要复制提供的名为php.ini.default的默认值

sudo cp /private/etc/php.ini.default /private/etc/php.ini

通过http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/