MySQL Fehler - unschön

Guten abend liebe Leute,

habe hin und wieder das problem das beim aufrufen eines php scripts auf meiner homepage folgender Fehler auftritt.
->
Warning: mysql_connect() [function.mysql_connect()]: Too many connections in /mnt/webc/41/07/52664807/htdocs/usaHP/php/connect.php on line 3
Verbindung zur Datenbank konnte nicht hergestellt werden


Das hier steht in der connect.php:
->
PHP:
<?php

$verbindung = mysql_connect("horst", "name" , "passwort")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("Datenbank") or die ("Datenbank konnte nicht ausgewählt werden");

?>

Woran liegt das, und was kann ich dagegen tun? Meine Seite ist bei Strato gehostet.

Danke im Vorraus
mfg selig
 
Wie bei jedem MySQL-Server stellt auch Strato auf seinen Servern nur eine begrenzte Anzahl an Verbindungen pro Server zur Verfügung. Wenn das Skript mehrfach aufgerufen wird (z.B. wenn viele User auf deiner Seite sind), kann es vorkommen, dass man an's Limit der möglichen Verbindungen kommt. Um sowas zu vermeiden, sollte man MySQL-Verbindungen prinzipiell auch wieder explizit schliessen, wenn sie nicht mehr benötigt werden, da sonst die Verbindungen bis zu einem festgelegten Timeout offen bleiben. Sorge daher dafür, dass mysql_close($verbindung) aufgerufen wird, wenn die Verbindung nicht mehr notwendig ist. Und sonst wende dich an Strato, dass sie die Anzahl der möglichen Verbindungen hochstellen bzw. hole dir ein Hosting-Paket, das ausreichend Verbindungen zur Verfügung stellt. Sollte es dein eigener Server sein bzw. solltest du Zugriff auf die MySQL-Konfiguration haben, dann stelle den Wert von max_connections für die MySQL höher ein.
 
Der Witz bei der Sache ist ja das ich die verbindungen bei den meisten seiten auf meiner hp wieder schließe - schon bevor der Fehler aufgetreten ist.

Wie hoch ist so ein Timeout für gewöhnlich?

Ansonsten aber danke, ich werde mich mal mit strato in verbindung setzen
 
Ein "normalerweise" gibt es bei Timeout-Einstellungen nicht. Sie sind ganz vom Provider abhängig. Der Default-Wert für das Close-Wait-Timeout liegt aber meines Wissens nach unter MySQL auf Linux bei 10 Minuten, da der Systemwert für TCP/IP verwendet wird.
 
Um sowas zu vermeiden, sollte man MySQL-Verbindungen prinzipiell auch wieder explizit schliessen, wenn sie nicht mehr benötigt werden, da sonst die Verbindungen bis zu einem festgelegten Timeout offen bleiben.

Die Verwendung von mysql_close() ist für gewöhnlich nicht notwendig, weil offene, nicht persistente Verbindungen automatisch mit Beendigung des PHP-Skripts geschlossen werden.

:wink:
 
Die Verwendung von mysql_close() ist für gewöhnlich nicht notwendig, weil offene, nicht persistente Verbindungen automatisch mit Beendigung des PHP-Skripts geschlossen werden.

Tja, das dachte ich auch lange Zeit, scheint aber nicht immer zu funktionieren. Meine Erfahrung zeigt, dass man mysql_close besser verwenden sollte. Hab in diversen Unternehmen erlebt, dass damit die To-Many-Connections-Probleme schlagartig aufhörten.
 
Zurück
Oben