gpt4 book ai didi

php - mysql_connect() localhost和127.0.0.1的区别

转载 作者:行者123 更新时间:2023-11-29 03:05:29 26 4
gpt4 key购买 nike

现在我有一个配置文件如下:

<?php
return array(
'server'=>'localhost',
'username'=>'root',
'password'=>'123456',
'dbname'=>'duxiu',
'charset'=>'utf8'
);

我对使用两种方法连接mysql所花费的时间感到困惑如下:

1.

<?php
class Mysql{
private $conn;

public function __construct($c){
$this->conn=mysql_connect($c['server'],$c['username'],$c['password'],true) or die("连接出错");
mysql_select_db($c['dbname'],$this->conn);
if(isset($c['charset'])){
mysql_query("set names ".$c['charset'],$this->conn);
}
}
}
$c=require('config.php');
var_dump($c);
$db=new Mysql($c);

它花费了 1.012 秒。

2.当我如下使用时:

<?php
class Mysql{
private $conn;

public function __construct($c){
$this->conn=mysql_connect($c['server'],$c['username'],$c['password'],true) or die("connect error");
mysql_select_db($c['dbname'],$this->conn);
if(isset($c['charset'])){
mysql_query("set names ".$c['charset'],$this->conn);
}
}
}
$c=array('server'=>'127.0.0.1','username'=>'root','password'=>'123456','dbname'=>'duxiu','charset'=>'utf8');
var_dump($c);
$db=new Mysql($c);

现在它花费了 0.012 秒。

为什么?

最佳答案

区别:当您使用 127.0.0.1 而不是 localhost 时,PHP 将尝试建立到 mysql 的 TCP 连接,而不是使用 UNIX 域套接字。

通常使用 UNIX 域套接字应该更快,但在您的应用程序中似乎情况并非如此,因为使用 UNIX 域套接字连接需要很长时间。您是否修改了 php.ini 值 mysql.default_socketpdo_mysql.default_socket?默认情况下它应该是空的。如果不是,您可以发布该值吗?

关于php - mysql_connect() localhost和127.0.0.1的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16134314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com