【发布时间】:2011-04-12 13:40:25
【问题描述】:
- 在
mysql_connect()中使用localhost是否比使用127.0.0.1更快? - PHP 脚本和mySQL 之间的连接类型是什么(使用
mysql_connect()函数时)?是 TCP/IP 吗?
【问题讨论】:
mysql_connect() 中使用localhost 是否比使用127.0.0.1 更快?mysql_connect() 函数时)?是 TCP/IP 吗?【问题讨论】:
【讨论】:
"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 配置中设置正确的路径,并将服务器字段留空。
【讨论】:
Unix-socket connection
不,建议使用 127.0.0.1,因为 Windows 7 在 IPv6 和 IPv4 之间进行选择存在问题。我试过这个,如果我使用 localhost,页面重新加载大约 1 秒(1.04 秒),当我使用 127.0.0.1 时,页面重新加载 50 毫秒。两者都在 Windows 7 下使用。
在 Windows XP 中没有任何区别。
【讨论】:
对于 Unix,添加到客户端块之后
[client]
在 /etc/mysql/my.cnf 这一行:
protocol=tcp
【讨论】:
PHP 网站说:
注意:
每当您指定“本地主机”或 “localhost:port”作为服务器,MySQL 客户端库将覆盖它并 尝试连接到本地套接字 (在 Windows 上命名管道)。如果你想 要使用 TCP/IP,请改用“127.0.0.1” “本地主机”。如果 MySQL 客户端 库试图连接到错误 本地套接字,您应该设置 正确的路径,如你的 PHP 配置并离开服务器 字段空白。
我猜速度差异太小了,你不应该担心。
【讨论】:
对于 Mac,这是解决方案:
使用 localhost 而不是 MAC 上的 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/
【讨论】:
localhost 不是更快,而是慢了一点。
话虽如此,如果您要连接到其他人;赶上我的漂移?
谁能说连接的哪一边更失败?没有人。那:
127.0.0.1 比 localhost 更快。在任何终端上尝试。
【讨论】: