Ich habe mich auf meinem Server angemeldet, um den Status der Datenbank zu überprüfen, und festgestellt, SHOW PROCESSLIST;
dass eine große Anzahl von Verbindungen inaktiv ist, die sehr alt sind.
Wie lang sollte die Verbindungszeit sein, bevor die Verbindung getrennt wird?
Wie setze ich das Zeitlimit in MySQL 5.0.51a-3ubuntu5.4?
Hinweis:
Ich benutze PHP 5.2.x und Symfony Framework 1.2.
Antworten:
mysqld
Das Zeitlimit für Datenbankverbindungen wird auf der Grundlage von zwei Serveroptionen festgelegt:Beide sind standardmäßig 28.800 Sekunden (8 Stunden).
Sie können diese Optionen in einstellen
/etc/my.cnf
Wenn Ihre Verbindungen bestehen bleiben (geöffnet über
mysql_pconnect
), können Sie diese Zahlen auf 600 (10 Minuten) oder sogar 60 (1 Minute) senken. Wenn Ihre App einwandfrei funktioniert, können Sie die Standardeinstellung beibehalten. Es liegt an dir.Sie müssen diese wie folgt einstellen
my.cnf
(wird nach einemmysqld
Neustart wirksam ):Wenn Sie mysql nicht neu starten möchten, führen Sie diese beiden Befehle aus:
Dadurch werden die bereits geöffneten Verbindungen nicht geschlossen. Dadurch werden neue Verbindungen in 180 Sekunden geschlossen.
quelle
wait_timeout=180
?