启用会话时,PHP mysql_connect无法解析主机名
疯狂吧?示例代码:启用会话时,PHP mysql_connect无法解析主机名,php,mysql,session,Php,Mysql,Session,疯狂吧?示例代码: <?php session_start(); $hostname="samplehost"; $username="sampleuser"; $password="samplepass"; $dbname="sampledb"; $link = mysql_connect($hostname, $username, $password) or die(mysql_error()); mysql_select_db($dbname, $link); ?> 将
<?php
session_start();
$hostname="samplehost";
$username="sampleuser";
$password="samplepass";
$dbname="sampledb";
$link = mysql_connect($hostname, $username, $password) or die(mysql_error());
mysql_select_db($dbname, $link);
?>
将抛出未知的MySQL服务器主机“samplehost”(2)。如果我们在mysql\u connect()
之前删除session\u start()
或只执行session\u destroy()
,它会正常工作。基本上,如果我们打开了一个会话,就像mysql\u connect无法解析主机名一样。我们用于服务器的主机名已正确添加到/etc/hosts
这是一个运行PHP5.3.2-1ubuntu4.7的生产服务器,今天才开始运行。有人碰到这个吗
编辑:应该提到的是,无论是否有会话,我们都可以指定DB服务器的IP,并且它可以正常工作。为什么不先连接,然后启动会话?如果有人遇到这种情况,这就成了我们在Apache中拥有的虚拟主机数量的问题。当您开始达到文件描述符的限制时出现,您会出现一些奇怪的症状-当我们开始在PHP中遇到“打开的文件太多”错误时,它最终被诊断出来
这是我们为新域自动生成vhost的传统设置。更好地管理该过程,减少vhost的数量,问题就消失了。这是您正在测试的完整脚本(当然是负值)吗?是否所有DNS/主机操作都受到影响?gethostbyname()呢?除了/etc/hosts中的条目之外,您还尝试过解析其他主机吗?@Richard-这是一个脚本,我已经用它进行了逐字测试,以限制所有其他源@胶囊-奇怪的是,我们已经尝试过,并不是所有的DNS都有效,我们可以使用
gethostbyname()
返回正确的IP@佩森-是的,不管我们为主持人做了什么,这都无法解决。看来你不是第一个遇到这个问题的人。我没有看到任何东西表明它是固定的: