php – SQLSTATE [HY000] [2002]资源暂时不可用 – mysql – inn
在我的错误日志中获得大量结果,如下面列出的那样.数据库中的所有表都是innodb,就与这些表的任何交互而言,所有表都是带有预处理语句的pdo.
正如我所说,所有错误几乎与下面列出的错误相同,但是对于几个不同的页面会发生.无论页面如何,错误行始终指向我开始新语句的点…例如$stmt = $db-> prepare(“……..语句本身可以很好地处理没有错误,所以我对导致这种情况的原因感到有些困惑. 对于不同的页面,这样的多个错误:
示例将错误点设置为 – 在这种情况下为$stmt = $db-> prepare(“具体为行.它始终指向开始新预准备语句的行. $stmt = $db->prepare(" SELECT accounts.account_id,computers.computer_id,computers.status,users.user_id FROM accounts LEFT JOIN computers ON computers.account_id = accounts.account_id AND computers.computer_uid = :computer_uid LEFT JOIN users ON users.computer_id = computers.computer_id AND users.username = :username WHERE accounts.account_key = :account_key "); //bindings $binding = array( 'account_key' => $_POST['account_key'],'computer_uid' => $_POST['computer_uid'],'username' => $_POST['username'] ); $stmt->execute($binding); //result (can only be one or none) $result = $stmt->fetch(PDO::FETCH_ASSOC); 连接脚本: <?php if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly'); // db config $db_host = 'localhost'; $db_database = '*******'; $db_user = '*******'; $db_pass = '*******'; //db connection try { $db = new PDO("mysql:host=$db_host;dbname=$db_database;charset=utf8",$db_user,$db_pass,array(PDO::ATTR_EMULATE_PREPARES => false,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_PERSISTENT => true)); } catch(PDOException $e) { error_log("Failed to connect to database: ".$e->getMessage()); } ?> 我想到的事情: >这个特殊的脚本运行很多…有时可以在一秒钟内多次调用它. 所有这些错误在这里发生了什么?任何人? 编辑 – 更多信息: >我已将localhost明确更改为127.0.0.1 由于执行上述操作,错误已更改为SQLSTATE [HY000] [2002] Connection超时.这实际上是一个人/ comp连接到’我’的问题,或者实际上是我的服务器/数据库的问题? 编辑2: 我使用$_SERVER [‘DOCUMENT_ROOT’]是否可能导致问题?由于此文件经常被“命中”,因此通常也需要连接脚本,如下所示.我需要在每个页面上按如下所示连接脚本:
我将在这个主题上指出@MrGomez
topic,这主要是简明但描述你所说的错误.这不是PDO相关的问题,而是MySQL特定的.
获取“资源暂时不可用”的原因 >耗尽MySQL可用内存 但是,您的日志应该有更多的东西让您知道发生了什么.就像确定任何文件是否有任何锁定一样. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |