First, let’s examine what this error message actually means.
Your database uses a language called MySQL. Your website is reliant on a server-side language called PHP. Whenever your website URL is entered into the browser, WordPress uses PHP commands to connect to the MySQL database, get the information needed, and then displays everything on the screen.
This is where the error comes into play. The error occurs when, for whatever reason, WordPress cannot access the information in the database via PHP commands. When that happens, WordPress basically doesn’t know what to do next, so the only thing it can say is, “Error establishing a database connection.”
With that being said, there can be a handful of reasons why the error occurs. Some of the more common ones:
- Incorrect login credentials: WordPress needs a specific login and password to access the database. If those have been changed for any reason then WordPress will no longer be able to fetch anything from the database.
- Corrupted WordPress files: The core WordPress files can get corrupted as a result of a failed update, among others. This can include things like failed updates of the plugins, themes, and even the main WordPress software updates.
- Corrupted database: This might be a result of a rogue plugin messing up the database internally, a hacker’s attack, a theme failing, and many more.
- The database server is down: In some cases, the web server (the server that stores your website files) is run on a different machine than the database. And that separate database server can simply be down for whatever reason.
- Too much traffic: Even though this is a good problem to have, it’s still a problem. Specifically, your database might be unresponsive due to a high spike in traffic.
How to Fix “error establishing a database connection”
We will show you how to fix the error establishing a database connection in WordPress by compiling a list of solutions all in one place.
Note: Before you make any database changes, make sure you have sufficient backups.
Get In Touch With Your Web Host Provider
It’s safe to assume that if your site was working just a minute ago (or a day ago) and now it isn’t then the fault can be on your web host’s end. So contact the support of your web host provider and ask: if the database server is up and running with no problems and if there isn’t any spike in activity or traffic on the server right now.
In most cases, if you tell them what sort of error you’re having, they will either let you know what the cause is exactly, or they will even fix it for you.
Check If Your Plugin or Theme Files Haven’t Been Corrupted
First, connect to your host via FTP. You can do this with a free tool called FileZilla.
In order to connect, you need a login and a password to your FTP account. If you don’t know what those are, the easiest way to get them is to search through the initial emails that you got from your web host when you first signed up.
Then, connect to the server and navigate to the WordPress root folder. It’s usually called “public_html” or “www” or you might be in it already once you establish the FTP connection.
The rule of thumb is that if you can see sub-folders like “wp-content” and “wp-admin” then you’re in the WordPress root.
Go into “wp-content” and rename the “plugins” folder to something else:
Go back to your site and see if the error is still there.
If not, you now know that it’s been caused by some plugin. Go back to FTP, rename the folder back to “plugins”. Go in it, and change the folder names of the individual plugins, one by one.
Keep coming back to your site to see when the error gets triggered or vanishes. Once you’ve narrowed it down to one specific plugin, you have found the troublemaker. Either delete it or go online to see if the solution has been documented.
If the error is still there even after renaming the “plugins” folder, go through the exact same process with the “themes” folder.
If that doesn’t help, rename both folders back to “plugins” and “themes”. The error is caused by something else.
Check If Your Database Hasn’t Been Corrupted
The first thing to check is to go to your WordPress dashboard – YOURSITE.com/wp-admin
If you see the same main error: “error establishing a database connection”, skip this step.
If you see something else, pay close attention to what WordPress is suggesting you should do. In its recent versions, WordPress has expanded its problem-solving solutions, so you might see some good advice there.
Another possibility is that you’ll see a message starting with “One or more database tables are unavailable” This means that it’s you who needs to “repair” the database.
This is actually quite simple. First, connect to your site via FTP once again. Go to WordPress root and download the “wp-config.php” file to your desktop.
Edit this file in notepad, add one extra line at the end (right before “That’s all, stop editing”):
Now upload the file back to your site (via FTP) overwriting the old version.
Go to YOURSITE.com/wp-admin/maint/repair.php
This is what you should see:
Click either of the buttons. Once the automatic repair finishes, go back to your site and see if the error is still there.
If no error, great! But you still need to revert your “wp-config.php” file to its previous state. Remove that new line that you just added and re-upload the file.
If the error’s still there, the next step is:
Check Your Database Connection Credentials
WordPress uses a specific username and password to connect to the database. Normally, those access credentials don’t change on their own. However, you can experience some weird scenarios after making any changes to your site files, the hosting environment, or anything else. In other words, even though it shouldn’t be happening, the access credentials sometimes do change. And with bad access credentials “error establishing a database connection” happens!
The fix is done in the “wp-config.php” file. I’m talking about these lines specifically:
They hold all the details that WordPress needs to connect to the database. If any of these are wrong, no connection will be established.
All you need to do is take the new credentials and put them in your “wp-config.php” file where the old ones used to be.
define('DB_NAME', 'some_db'); /* this is the name of your WordPress database */
define('DB_HOST', 'localhost'); /* this is the web address of your database server */
At this stage, you can go back to your site and see if the error has been fixed.
Restore the Default WordPress Files
WordPress core files can get corrupted for a number of reasons. Maybe there’s been a hacking attempt on your site, maybe you modified some files by accident, and maybe a rogue plugin did the modification.
Whatever it might be, you can still restore the default, native files of WordPress. The easiest way to do that is to just download a clean version of WordPress from WordPress.org and copy it over the one you have right now.
Download the newest package to your desktop. Unpack. Browse through the unpacked archive and delete the “wp-content” folder.
Next, connect to your site via FTP, go to the main WordPress root, upload your new WordPress files. Overwrite all the previous files.
When the upload is done, go back to your site and see the effect.
This is a last resort kind of fix.
We hope you found this guide helpful and that you were able to solve your WordPress “error establishing a database connection” problem. However, WordPress experts recommend using managed WordPress hosting to reduce the stress by handing over the technical challenges to professionals.