How can i permanently solve this error... "SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)"

November 28, 2014 3.5k views

I have a 512MB Digital Ocean droplet running on CentOS 6.5 and using Zpanel as my control panel. In it i have hosted 2 web apps, 1 Laravel 4 and the other WordPress and they both work fine only that from time to time i get the following errors which resolve temporarily when i reboot my VPS.


Zpanel: Critical Error: [0100] - Unable to connect or authenticate to the ZPanel database (zpanel_core).
We advice that you contact the server administator to ensure that the database server is online and that the correct connection parameter are being used.

Laravel: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

WordPress: Error establishing a database connection

How can i permanently solve this.

Thanks in advance.

1 Answer

The most common reason that MySQL will crash or become unavailable on a 512MB droplet is a lack of available memory. Droplets do not have swap space by default and the requirements for a LAMP stack, especially when running a control panel, can exhaust the available memory and cause services to crash.

You can check your available memory with:

free -m

If you find that you are low on memory you can try enabling a swap file on your droplet, optimize your MySQL configuration, or upgrade to a larger droplet plan.

by Justin Ellingwood
Swap space can be used as an "overflow" area for your system when you run out of RAM. The operating system can store data that would normally be kept in RAM on the hard drive in a specially formatted file. In this guide, we'll demonstrate how to create and use one of these files in Ubuntu 14.04.
Have another answer? Share your knowledge.