繁体   English   中英

启用会话后,PHP mysql_connect无法解析主机名

[英]PHP mysql_connect cannot resolve Host name when sessions are enabled

疯狂吧? 样例代码:

<?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);
?>

将抛出Unknown MySQL server host 'samplehost' (2) 如果我们删除session_start()或只是在mysql_connect()之前做一个session_destroy() mysql_connect() ,它就可以正常工作。 基本上,如果我们打开了一个会话,则它像mysql_connect一样不会解析主机名。 我们用于服务器的主机名已正确添加到/ etc / hosts中。

它是运行PHP 5.3.2-1ubuntu4.7的生产服务器-今天才开始发生。 有人碰到这个吗?

编辑:应该提及,无论有无会话,我们都可以指定数据库服务器的IP,并且它可以正常工作。

如果有人遇到这个问题-事实证明这是我们在Apache中拥有的虚拟主机数量的问题。 当您开始达到文件描述符的限制时,您会出现一些奇怪的症状-当我们开始在PHP中收到“打开的文件太多”错误时,它终于被诊断出来。

这是我们自动为新域生成虚拟主机的传统设置。 更好地管理该过程,减少虚拟主机数量,问题就消失了。

您为什么不先连接然后开始会话?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM