DigitalOcean Error Establishing a Database Connection Finally Solved!
DigitalOcean`s droplets are great and I use them all the time for my new websites because even though content is very highly regarded by Google, website speed is also one important metric and customers or visitors have a more pleasant experience when they visit a fast loading website. I personally click away in about 5 seconds if a page doesn`t load and I think I`m a pretty patient user.
When you first create a droplet (we are talking about a Wordpress droplet), everything is automaticly deployed and your cloud server is ready in less than a minute. This is very good when you don`t want to spend time configuring everything or you are not knowledgeable in Ubuntu, you just want your Wordpress to work perfectly.
I have many wordpress droplets and I encountered this problem on all of thema few minutes or hours after they were created:
When I finally wanted to work on the website I was greeted with Error Establishing a Database Connection
For some time I was wondering how is that possible, a new droplet with this kind of issue? I was thinking it`s not a properly configured image etc, then I started digging in deeper because on the discussion forums I saw that people haven`t managed to fix this problem and I am sure many customers left DigitalOcean because of it.
- I tried to reboot but the problem would come back shortly
- I tried to update all the packages - same result
- I created a swap file to be sure mysql would not run out of memory - same result, no improvement
Then I looked in all the error logs and to my surprise, I found the reason why mysql was crashing the the annoying error would pop up! A xmlrpc attach which by the looks of it, is targeting all the DigitalOcean droplets or ip`s. Check out the picture attached below
XMLRPC Attack Log
To see if you`re in the same situation, log on your droplet and type in the following command:
grep xmlrpc /var/log/apache2/access.log For Nginx:
grep xmlrpc /var/log/nginx/access.log
If the result is many connections to the xmlrpc.php file, then you`re "lucky", you can fix this problem easily.
The fix is rather easy to implement, all you need to do is type in the following:
sudo a2enconf block-xmlrpc then restart Apache by typing:
sudo service apache2 restart
You can also block the attack by installing the JetPack plugin in Wordpress and enabling the "Protect" feature.
I hope everybody will be happy to have finally found the fix to this issue. Please leave your comment and share the article if it has helped you.