How to solve MySQL max_user_connections error

Read max_connections document to solve your problem

If clients encounter Too many connections errors when attempting to
connect to the mysqld server, all available connections are in use by
other clients.

The permitted number of connections is controlled by the
max_connections system variable. The default value is 151 to improve
performance when MySQL is used with the Apache Web server. To support
more connections, set max_connections to a larger value.

First: Check your current database max_connection variable

SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+

Then Try to increase the max_connection parameter either with running command like:

 SET GLOBAL max_connections = 300;

Or set this parameter in my.cnf that mostly is located at /etc/my.cnf

vi /etc/my.cnf
max_connections = 300

Finally: Restart MySQL service

FYI
you can also check max_user_connections. however, they are related like this:

max_connections set the total connection limit
max_user_connections set limit per user

====

As Sushilzzz asked: can this be caused by low RAM?
Short answer: No
Long Answer: yes, If Ram Size is low and MySQL can’t respond as fast as needed there will be many open connections and you can easily hit the max connection.
The estimated number of max connections per 1GB of ram is 100 (if you don’t have any other process using ram at the same time). I usually use ~75 for max_connection per 1GB of RAM

RAM      max_connection
1GB      70      
2GB      150      
4GB      300      
8GB      500  

Leave a Comment