本地主机与127.0.0.1

  1. mysql_connect()使用localhost会使连接比使用127.0.0.1更快吗?
  2. PHP脚本和mySQL之间的连接types是什么(当使用mysql_connect()函数时)? 它是TCP / IP?
  1. Windows和Linux不同。 如果你使用unix域套接字,它会比使用TCP / IP稍快(因为你有更less的开销)。
  2. Windows使用TCP / IP作为默认值,而如果您select本地主机和TCP / IP(如果采取127.0.0.1),则Linux会尝试使用Unix域套接字。

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

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

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

不,build议使用127.0.0.1,因为Windows 7在IPv6和IPv4之间select有问题。 我试过这个,如果我用本地主机,页面重新加载约1秒(1,04秒),当我使用127.0.0.1,页面重新加载50毫秒。 两者都在Windows 7下使用。
在Windows XP中,它没有什么区别。

Php网站说:

注意:

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

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

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

 protocol=tcp 

对于Mac,这里是解决scheme:

在MAC上使用本地主机而不是127.0.0.1连接到MySQL。 很长一段时间以来,我一直在使用127.0.0.1在我的开发平台上连接到MySQL,因为某些原因localhost不工作​​。 原来是因为127.0.0.1使用TCP / IP和本地主机使用套接字。 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/