it-swarm.com.de

Wie lange ist "zu lang", damit MySQL Connections schlafen kann?

Ich habe mich auf meinem Server angemeldet, um den Status der Datenbank zu überprüfen, und habe festgestellt, dass SHOW PROCESSLIST; dass es eine große Anzahl schlafender Verbindungen gibt, die sehr alt sind.

enter image description here Wie lange sollte das Verbindungszeitlimit sein, bevor die Verbindung unterbrochen wird?

Wie setze ich das Zeitlimit in MySQL 5.0.51a-3ubuntu5.4?

Hinweis:

Ich verwende PHP 5.2.x und Symfony Framework 1.2.

39
Patrick

mysqld begrenzt Datenbankverbindungen basierend auf zwei Serveroptionen:

Beide sind standardmäßig 28.800 Sekunden (8 Stunden).

Sie können diese Optionen in /etc/my.cnf Einstellen.

Wenn Ihre Verbindungen dauerhaft bestehen (geöffnet über mysql_pconnect), Können Sie diese Zahlen auf einen vernünftigen Wert wie 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 in my.cnf Wie folgt einstellen (wird wirksam, nachdem mysqld neu gestartet wurde):

[mysqld]
interactive_timeout=180
wait_timeout=180

Wenn Sie mysql nicht neu starten möchten, führen Sie die beiden folgenden Befehle aus:

SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;

Dadurch werden die bereits geöffneten Verbindungen nicht geschlossen. Dadurch werden neue Verbindungen in 180 Sekunden geschlossen.

54
RolandoMySQLDBA