Fix MySQL "Too Many Connections" Error
Too many connectionsERROR 1040can't connect to database"Too many connections" means MySQL hit its connection limit and is refusing new ones — so your site or server can't reach the database. Here's the quick fix and the real one.
Why it happens
MySQL allows a fixed number of simultaneous connections (max_connections, often 151 by default). When apps open connections faster than they close them — or leak them — the limit fills and everything new is denied.
See the current state
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
SHOW PROCESSLIST; -- what's actually connected
Quick fix: raise the limit (live)
You can raise it without a restart to get back online:
SET GLOBAL max_connections = 300;
Make it permanent in my.cnf so it survives a restart:
[mysqld]
max_connections = 300
If connections keep piling up, an app is leaking them or queries are running too long. More connections + more RAM use can crash the server. Fix the leak, don't just raise the ceiling forever.
Fix the root cause
- Use connection pooling / persistent connections correctly in your app.
- Kill long-running/stuck queries (find them in
SHOW PROCESSLIST). - Lower per-connection memory if you raise the limit a lot.
- Make sure one buggy plugin/script isn't opening connections in a loop.
Raise max_connections to get back online, then find what's leaking connections — the limit is a symptom, not the disease.
MySQL is a trademark of Oracle Corporation. MariaDB is a trademark of MariaDB Foundation. ESAGAMES is an independent hosting provider, not affiliated with or endorsed by Oracle.
Databases that stay up
Our managed hosting tunes MySQL/MariaDB for your workload, so game panels and sites stay connected.
Frequently asked questions
What causes MySQL "Too many connections"?
More simultaneous connections than max_connections allows. Either real load outgrew the limit, or an app is opening connections without closing them (a leak). SHOW PROCESSLIST shows what's connected.
How do I fix it quickly?
Raise the limit live with SET GLOBAL max_connections = 300; to get back online, and set it in my.cnf to persist. Then investigate why so many connections are open.
Should I just keep raising max_connections?
No. Each connection uses memory, so raising it too high can crash the server. If connections keep filling up, fix the app that's leaking them or the slow queries holding connections open.
Related articles
Fix SSH "Connection refused" / "Connection timed out"
SSH "connection refused" vs "timed out" — what each means and the exact steps to fix them.
Read fix Linux & VPSFix "Permission denied" on Linux (chmod & chown Explained)
"Permission denied" on a script or file? Understand chmod/chown and fix it the right way.
Read fix Linux & VPSHow to Check CPU, RAM & Disk Usage on a Linux Server
The essential commands to check CPU, RAM and disk on Linux — and find what's eating them.
Read fix