Question

"Error establishing a database connection" on a new WordPress site?

Posted September 4, 2013 43.1k views
Hey. I created a new 512MB droplet, and used the 1-click wordpress install. I added a few plugins, and created just one page. This is a brand new site, and currently has no other content. The website was running fine a few days back, however, when I tried to load it today, I got the message: "error establishing a database connection" I rebooted the droplet through SSH, and the website started working again. A few articles in the DO community point out that this may be due to MySQL crashing because its falling short of memory. So I checked my Google Analytics account to see if there has been a sudden surge of activity on my website, and the only activity was 5 or so visitors a couple of days back. MySQL memory shortage seems like a plausible explanation, but I have difficulty believing that a 512 MB droplet is not enough to run a completely empty wordpress website and serve 5 users. I have a few questions: 1. Is 512 MB really too low to just host a blank site? Should the DB fail with 5 visitors? 2. If not, then what other factors could cause the DB to stop working? 3. How can I check the logs/ or find out for sure what the problem was? 4. Is there any way to keep a track of the droplet's memory usage? Additional information: I installed the following plugins on my WP site: - Better WP Security - Google Analytics for WordPress - WordPress SEO - Microkid's Related Posts - Disqus Comment System - Contact Form 7 - All in one Favicon I also installed a couple of other plugins, but they were deactivated. Also, the "Better WP Security" plugin is configured to create a backup of the WP DB every few days. Please help me out with this. I'd like to prevent my site from failing again.
3 comments
  • If you have 512MB ram - add 1024MB swap file.

    In tutorial above swap is 256MB. Create 1024MB file like this:
    dd if=/dev/zero of=/swapfile bs=1M count=1000

  • This seems like a common issue. I’ve contacted DO support sever times. First I was told it was due to noisy neighbors, then I was told it might be something wrong on my end. I guess—plugins. My 1gb ram droplet typically uses 5%-10% CPU, then randomly, every 1-4 days, my server gets hit with 80%-100% CPU spike. This is when I receive the database connection error.

    My site has low traffic. I use WP Super Cache to only dump cache once per day. I am also using serverpilot.io to manage my WP install. I’ve followed their suggested settings. https://serverpilot.io/community/articles/how-to-install-wp-super-cache.html

    The cache dumping time does not match the CPU spike time.

    It also seems swap is enabled.

    Running sudo swapon -s
    returns the following:
    “`Filename Type Size Used Priority
    /swapfile file 524284 0 -1

    
    Any ideas?
    
  • Go here: http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/

    Their WP image has no swap so memory gets used up 100% and causes mysql to crash. I wonder if it’s the same for their other images.

    DigitalOcean #nochill

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
38 answers
@Dave: Is MySQL running? sudo service mysql status

Was it working fine previously?
Hi Everyone, please I need help:

When i try to access myipaddress/phpmyadmin i get the following error:

phpMyAdmin - Error
The mysqli extension is missing. Please check your PHP configuration. Documentation

I just recently moved 2 sites to the digital ocean droplet (2GB, 40GB Ubuntu droplet) and the frontend of the site is showing error connecting to database.

Please help, very urgent.
We are having the same issue and are thinking about WPEngine to solve these headaches. One suggestion was to use nginix on DO as well.
It can be result of high load and MySQl crash. I use script to check couple of services every 5 minute if they are running, and start/restart them if they don't. You can use "monit" I think there is tutorial here how to install it.
  • Can you give me/us the example script of it? The script to control and check couple of services every 5 minute if they are running, and start/restart the system.

    Thanks

512 droplet is definitely enough to host a wordpress website. Mine is on a 512 droplet, never experienced any issues. I'd suspect the problem might be related to one of the plugins leaking memory.
@Goran: Possibly. Is there any way to check if this is the case, and which plugin could be the culprit?
First I'd check any plugins doing backups. Schedule a backup from the plugin and check if that's the issue. Sometimes backup plugins can use a lot of memory.
Next I'd disable the plugins one by one and test the website performance. If you find a certain plugin to be the one causing the issues, disable it and seek alternative if you must have its functionality.
If you'd like to get a deeper insight I'd install New Relic to check what's consuming memory.
By the way, which php5 modules are you running? Which apache2 modules do you have installed? I'm asking because I don't know which ones are installed using the 1-click install and you may have some modules that are unnecessary.
See here: http://wordpress.org/support/topic/plugin-better-wp-security-uses-up-a-lot-of-memory

also make sure you have swap and if not do it https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
by Etel Sverdlov
Linux swaps allow a system to harness more memory than was originally physically available. Here's how to set up a linux swap file on Ubuntu 12.04
Apache uses a lot of memory by default, especially if you have a lot of plugins/themes installed. This wouldn't leave a lot of memory for MySQL and would cause it to crash.

Try adding some swap to your droplet:

https://www.digitalocean.com/community/articles/how-to-add-swap-on-ubuntu-12-04
by Etel Sverdlov
Linux swaps allow a system to harness more memory than was originally physically available. Here's how to set up a linux swap file on Ubuntu 12.04
@Goran: Thanks for the suggestions. I ended up creating a larger droplet, mainly because I'm certain that I will install more plugins on my site, and some more software on my server.

@Goran, @Kamal: I had an extensive chat with DO support today. They told me that DO VPS no longer support swap. The article is outdated, and is going to be removed.
Previous 1 2 3 4 Next