patternsqlCritical
How long is "too long" for MySQL Connections to sleep?
Viewed 0 times
sleeplongtoomysqlforhowconnections
Problem
I logged onto my server to check the status of the database and noticed on the
What duration should the connection time limit be before the connection should be killed?
How do I set the time limit in MySQL 5.0.51a-3ubuntu5.4?
Note:
I am using PHP 5.2.x and symfony framework 1.2.
SHOW PROCESSLIST; that there are a large number of connections sleeping that are very old.What duration should the connection time limit be before the connection should be killed?
How do I set the time limit in MySQL 5.0.51a-3ubuntu5.4?
Note:
I am using PHP 5.2.x and symfony framework 1.2.
Solution
mysqld will timeout database connections based on two server options:- interactive_timeout
- wait_timeout
Both are 28,800 seconds (8 hours) by default.
You can set these options in
/etc/my.cnfIf your connections are persistent (opened via
mysql_pconnect) you could lower these numbers to something reasonable like 600 (10 minutes) or even 60 (1 minute). Or, if your app works just fine, you can leave the default. This is up to you.You must set these as follows in
my.cnf (takes effect after mysqld is restarted):[mysqld]
interactive_timeout=180
wait_timeout=180If you do not want to restart mysql, then run these two commands:
SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;This will not close the connections already open. This will cause new connections to close in 180 seconds.
Code Snippets
[mysqld]
interactive_timeout=180
wait_timeout=180SET GLOBAL interactive_timeout = 180;
SET GLOBAL wait_timeout = 180;Context
StackExchange Database Administrators Q#1558, answer score: 65
Revisions (0)
No revisions yet.