bekommen dies in meinem Fehler hin anmeldet und dann und wollen das Problem herauszufinden:SQLSTATE [HY000] [2002] Connection timed out
[04-Oct-2014 13:25:42 America/Chicago] Failed to connect to database: SQLSTATE[HY000] [2002] Connection timed out [04-Oct-2014 13:25:42 America/Chicago] PHP Fatal error: Call to a member function prepare() on a non-object in /home/spconlin/public_html/spc_app/app/add_log.php on line 28
Connect Skript:
<?php
if(!defined('INCLUDE_CHECK')) die('You are not allowed to execute this file directly');
// db config
$db_host = '127.0.0.1';
$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::ERRMODE_SILENT is default setting
PDO::ATTR_PERSISTENT => false
)
);
}
catch(PDOException $e) {
error_log("Failed to connect to database: ".$e->getMessage());
}
?>
Was ich getan habe:
- wechseln von 'lo calhost‘to 127.0.0.1 in den Anschluss
- Schalter persistenten Verbindungen zu falschen
Bevor die oben genannten Änderungen an meine Verbindung zu tun war ich immer SQLSTATE[HY000] [2002] Resource temporarily unavailable
statt connection timed out
wie oben gezeigt.
Einige Hintergrundinformationen - insbesondere das Skript add_log.php fügt der Datenbank einige Informationen hinzu, wenn sie tatsächlich verwendet wird. Während fast 99% der Zeit dieses bestimmte Skript in dem Fehler referenziert wird, sind manchmal andere. Ich weiß, dass das Skript auf nichts wirklich hindeutet, weil dies nicht der Fehler ist (es tritt in der Verbindung nicht das Skript add_log.php auf), aber es ist seltsam, dass es fast immer diese bestimmte referenzierte Datei ist, die mich führt Die Tatsache, dass es so oft hintereinander heißt, zu glauben, ist Teil des Problems.
DB ist innodb.
Ist das tatsächlich ein Problem mit meinem Server und db oder der Person/Computer, der damit verbunden ist? Ist es möglich, dass "sie" eine schlechte Verbindung zu "mir" haben und dies den Fehler verursacht?
EDIT:
Könnte es in der Art und Weise sein, die ich meine connect Skript bin erfordert auf Seiten ist sie nötig? Da die Datei ziemlich oft "getroffen" wird, würde mein Connectscript genauso viel von der darunter liegenden Zeile benötigt. Beachten Sie, dass ich $_SERVER['DOCUMENT_ROOT']
verwende (könnte das Auswirkungen haben?).
Können Sie sich mit einem Client in Ihre Datenbank einloggen? ohne PHP? Normalerweise ist dies ein mysql-Ressourcenproblem –
welche Zeile des Codes ist in add_log.php Zeile 28? Es scheint nicht Teil des Codes zu sein, den Sie enthalten haben. – mschuett
Es ist nicht relevant, wie in der Op erwähnt. Der Fehler tritt in der Verbindung auf und wird bei der nächsten Verwendung von $ db ausgelöst.Es gibt keinen "Fehler" mit den Skripten - sie funktionieren gut - ich kann diesen Fehler nicht selbst replizieren und es passiert nicht die ganze Zeit. – user756659