SQLSTATE[08004] [1040] Too many connections error is shown in Plesk interface

Created:

2016-11-16 13:05:17 UTC

Modified:

2017-04-27 11:11:17 UTC

12

Was this article helpful?


Have more questions?

Submit a request

SQLSTATE[08004] [1040] Too many connections error is shown in Plesk interface

Applicable to:

  • Plesk for Linux
  • Plesk 12.5 for Windows

Symptoms

The following errors occasionally appear in the Plesk interface:

Unable to connect to database: Too many connections

SQLSTATE[08004] [1040] Too many connections

Cause

This error means that the maximum number of simultaneous connections to the MySQL server has been reached. New connections to the server cannot be established at this time.

Resolution

There are two ways to solve this issue. The first is to increase the connection limit, and the second one is to determine the cause of the "Too many connections" error and use that information to lower MySQL server usage.

The MySQL server status can be checked using the mysqladmin utility. For example, to find out the number of current connections to the server, use:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` extended-status | grep Max_used_connections
| Max_used_connections | 11 |

The current connection limit can be found using:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow ` variables | grep 'max.*connections'
| max_connections | 100 |
| max_user_connections | 0

In the above example, the maximum number of connections to the server ( max_connections ) is set to 100. The maximum number of connections per user ( max_user_connections ) is zero, which means unlimited. The default MySQL values can be redefined in /etc/my.cnf ( /etc/mysql/my.cnf on Debian/Ubuntu). For example:

[mysqld]
max_connections=150
max_user_connections=20

Restart MySQL after my.cnf has been modified:

/etc/init.d/mysqld restart

Please note: if you set the connection limit to a very high value (more than 300), this may affect server performance. It is better to find and rectify the cause of the unusually high MySQL server usage. You can check which users/requests slow MySQL on all current connections with the following command:

# mysqladmin -uadmin -p`cat /etc/psa/.psa.shadow` processlist
Have more questions? Submit a request
Please sign in to leave a comment.