• Skip to main content
  • Skip to primary sidebar
  • Skip to footer

Fixmysite.com

Fix Your WordPress Website Right Away for $39

  • Services
    • Small Tasks
    • Repair
    • Migration
    • Speed Optimization
    • Malware Removal
    • Redesign
  • My Account
    • My support tickets
    • My billing area
  • Support
  • WordPress Maintenance Plans

Fix the “Error Establishing a Database Connection” in WordPress

Last updated on: March 9, 2020
Written by William Leave a Comment

Tweet Share Network
Database Error

“Error establishing a database connection”…

…at the place of your beloved website. What a disaster!

Error establishing a database connection

As subtle as a brick!

Admittedly, it’s a scary message! There are no styles, no explanations, just a bare warning straight out of the DOS era. It can be especially frustrating when you encounter the issue without making any changes to the website.

First things first, DEACTIVATE PANIC MODE!

Let me assure you that the problem can be fixed.

It’s an error most WordPress site owners and developers will face at some point in their career.

Outlined in this article, are 5 steps you can take to troubleshoot the “Error establishing a database connection” (A.K.A. EEDC).

(click on the links to navigate the article)

  1. Contact your hosting company
  2. Check database login details
  3. Repair a corrupted database
  4. Create a new database user
  5. Check for corrupted files

Work systematically, and you should be able to restore your website to good operating order in no time!

Understanding the Error

I don’t want to reiterate the obvious, but the error is really self-explanatory – it’s an error establishing a database connection.

In non-technical terms, what exactly does this mean?

To better understand the issue, it’s important to know how WordPress and dynamic websites work. A dynamic website consists of two key parts, those are the website files and database.

The website files are written in the PHP programming language and make up the WordPress software.

The database is where all your website’s content is stored. That includes your posts, pages, settings, user data and any iota of information stored on your website.

To render your website, the two parts need to work together.

When a visitor visits a page – PHP code is executed requesting information from the database. The information is retrieved and then displayed to the visitor in the browser.

If for either reason the communication interrupted, WordPress won’t be able to retrieve any information from the database and will return a blank page with an ominous error message.

Common Causes

So why does a connection between a database and website fail? Here are 5 of the most common reasons, accompanied by steps you can take to troubleshoot your website.

Hosting Problems – There are a handful of reasons why a connection can go south on the web host’s end. For instance, a traffic spike could overload the database and render your website unresponsive. Likewise, they may be updating their hardware or software leaving you temporarily offline.

Corrupted Files – Your site’s files are made up of the WP core files, plugin and theme files. Often, when a website is hacked or when files are modified, WordPress fails to run correctly and returns an error.

Corrupted Database – To render your beautiful website, many parts work coherently together. Those are parts are constantly creating, reading, updating and deleting content from the database. It’s rather uncommon, but a hiccup on the backend will return a website error.

Database User Privileges – Every database has a user that is granted access to create, read, update and delete data. If your database’s user doesn’t have the necessary privileges to fetch data for the website, the website will return an error.

Database Credentials – Perhaps the most common cause and easiest to resolve is the use of incorrect MySQL login credentials.

Before Fixing

Heads up!

Changes to the database are permanent, that’s why we recommend you make a backup of your database before applying any of the suggested fixes.

Most popular web hosting companies (E.g. SiteGround, Bluehost, HostGator, etc…) use cPanel as their hosting interface. In this article, we’ll also be working with cPanel.

From the cPanel control panel, open PHPMyAdmin.

phpmyadmin

On the lefthand side, select the database you would like to download and click on the export tab located at the top of the page.

phpmyadmin - databases

The default export method will work just fine. Select SQL as the format and press the go button to start the download.

phpmyadmin - database export

5 Ways to Fix the “Error Establishing a Database Connection”

Without further ado, let’s take a look at 5 different steps you can take to troubleshoot your website.

Note! This guide is written in full transparency. The steps listed below are the ones we would follow if you hired us to fix your WordPress website!

1. Contact your Hosting Company

If you didn’t make any changes to your website and, out of the blue, your website isn’t working anymore. There is a good chance that the issue lies with the hosting company.

In any case, since we are working by process of elimination, it’s a good place to start.

Head over to the support section of your hosting company and initiate a chat session.

You can send them the following message:

Hi Team,

We have an “Error establishing a database connection” and would like to know if you’re having any issues on your end? Perhaps:

i) Traffic spike
ii) DDOS attack
iii) Hardware/software updates

Thanks!

Most good hosting companies will inform you if they are experiencing any difficulties on their end.

If the hosting company is responsible for the downtime, all you can really do is wait for their update.

On the other hand, if you’re responsible for the error, head over to section 2 of this guide.

Tip! Ask the support staff to kindly fix the problem for you! There is a good chance they can restore your website to good operating order 🙂

Advanced Tip!

If you would like to check the status of your MySQL server, you can run the following two tests.

First, in cPanel, head over to the MySQL Databases sections. In some cases, when the service is down, an error message (like below) may be displayed.

MySQL server offline

Another option would be to run a MySQL connection test. You can run the following PHP script:

Simply fill out the variables (do verify that you have the correct details), upload the file to the root directory, and run it by opening it the browser.

If the script returns the message “Unable to Connect to localhost”, then something is wrong with your server.

On the flip side, if the script returns the message “There are 12 tables”, then you need to continue troubleshooting!

2. Check Database Login Details

The most common reason why web developers encounter the “Error establishing a database connection” is that they have incorrect login details in the wp-config.php file.

It’s especially common for webmasters who just migrated their WordPress website from one hosting environment to the other.

The wp-config.php file is arguably the most important file in a WordPress website! It’s where you store your database’s login details for your website to connect with it.

To repair our website, the second step we are going to take is to ensure that we are working with the correct login details.

Head over to your hosting account and search for the file manager application and open it.

File manager

The wp-config.php is located in the root directory of your WordPress website.

So that will be in the “public_html” directory.

wp-config.php WordPress

Download the file and open it your favorite text editor. Lines 20 to 40 should look something like this:

wp-config.php details

We’re interested in the following 4 lines.

define('DB_NAME', 'xxxxxxxxxx');

Defines the name of the database for WordPress.

define('DB_USER', 'xxxxxxxxxx');

Defines the MySQL database username.

define('DB_PASSWORD', 'xxxxxxxxxx');

Defines the MySQL database password.

define('DB_HOST', 'localhost');

Defines the MySQL hostname.

Database Name

First, we’ll start by verifying the database name (DB_NAME). Head back to the cPanel open PHPMyAdmin.

phpmyadmin in cPanel

The database/s should be located on the right-hand side.

database names

In this example, we have 8 databases. The last one’s name is “tcegfjru_wp938”. Copy and paste the name in the wp-config.php file, between the single quotes, where it asks you for DB_NAME.

Tip! If you have many databases, as we do, you can check that you are working with the correct one by opening the options table. The first two rows of the table (siteurl and home) should list your website’s URL.

Database User

The second line refers to the database user (DB_USER).

Once again, head back to cPanel and open the MySQL Databases application.

cPanel MySQL database

Scroll all the way down the page to “Current Users”.

The “Current Users” table lists the active users.

database users

In most cases, the database username is the same as the database name – but not always.

If you don’t see any users, check out the last part of the guide where we create a new database user.

Database Password

The database password (DB_PASSWORD) refers to the database’s user password.

The quickest way to ensure that you have the correct password is to reset it!

Stay on the same page, and simply click the “Change Password” link.

database user - change password

cPanel will automatically generate a strong password for you. Copy it and paste in your wp-config.php file.

Database Host

Finally, we have the database host (DB_HOST).

In many cases, this will be “localhost”. But it also depends on the hosting company.

Some Godaddy packages and Dreamhost, for instance, don’t use localhost.

In this case, check your hosting provider’s documentation or send them a quick email. They should get back to you in no time with your database’s host address.

3. Repair a Corrupted Database

In this part of the article, we’ll explore our options for repairing a corrupted database.

WordPress is a complex software with many parts communicating with the database. Though it’s rather rare, an error can occur breaking the backend.

To address the issue, we have two options.

  1. The first is to troubleshoot with WordPress’s built-in repair function.
  2. The second is to troubleshoot from cPanel and PHPMyAdmin.

WordPress Fix

By now, we should be familiar with the wp-config.php.

Open the file, and paste the following snippet of code right before the line that says “That’s all, stop editing! Happy publishing.”.

define('WP_ALLOW_REPAIR', true);

Once you have uploaded the file, enter the following URL in your browser:

https://yourwebsite.com/wp-admin/maint/repair.php

WordPress will automatically look for some common database problems and repair them.

WordPress - Repair Database

WordPress - Repair Database Results

After running the function, don’t forget to remove the snippet of code from the wp-config.php to prevent unauthorized users from playing around with your database.

cPanel Fix

In a similar fashion, you can also try to fix the issue from cPanel.

Head over to the MySQL Databases page.

Scroll down to the “Modify Databases” section, select the database, and click the repair button.

Modify Databases

Alternatively, open PHPMyAdmin.

Choose a database and select all the tables by clicking the “Check all” box at the bottom of the page.

From the dropdown, click on “Repair table”.

PHPMyAdmin - Repair table

If that didn’t resolve the issue, keep reading and we’ll explore two more options!

4. Create a New Database User

By now, we are like database experts!

The last tip we have that involves fiddling around in the backend, is to create a new database user.

As we know, every database has a user.

And every user is granted certain privileges to create, read, update and delete content.

While repairing your site, if you come across the access denied error there is a good chance that your user has insufficient privileges.

To create a new user, we’ll log into cPanel and open the MySQL application.

Creating a user is as straight forward as giving the user a name and password.

Save the password!

Now for the interesting part.

We need to add the user to a database. Simply scroll a little further down. From the dropdown, select a database, the respective user and click add.

MySQL - Create a database user

You’ll be prompted to the “Manager User Privileges”. Here, we want to grant the user all the privileges to operate the database.

MySQL Database User Privileges

5. Replace Corrupted Files

The last part of this guide is to check for corrupted files.

Sadly, if your files are corrupted, it’s more than likely that your website is hacked.

From experience, getting a site compromised is one of the worst feelings.

But just like the Error establishing a database connection, a hacked site can be fixed. We have written an extensive how-to article (D.I.Y.), and this our service page.

If you have access to the admin area (most likely you don’t), install one of the malware scanners on your website. Use the results to determine the status of your website.

If you don’t have access to your site, the concept is as follows:

Replace the broken parts of your website until the error no longer persist.

It’s a trial and error process.

Start off by:

  1. Replacing core WordPress files
  2. Deactivating your plugin files
  3. Restoring the default theme

If you are unfamiliar with the process, check out the how-to guide on safely – manually – updating WordPress.

To update WordPress, delete everything with the exception of the “wp-content” directory and wp-config.php file. Replace the deleted parts with clean ones from a freshly downloaded copy of WordPress.

Delete WordPress files

To deactivate all your site’s plugins, rename the plugins directory. Then create a new plugins directory. Drag and drop your plugins from the renamed directory to the new one, until you find the one that breaks your site.

Rename plugins directory

To restore your default theme, make sure to upload a clean copy of the twenty-something theme. Then head over to PHPMyAdmin. Select the options table and enter your theme’s name in the template and stylesheet row.

PHPMyAdmin - Theme

By the following the above 3 steps, you should able to locate the source of the problem, delete it, and replace with working part! Much like a car mechanic 🙂

Wrapping It Up!

Fixing the “Error establishing a database connection” can be a little tricky at times.

As illustrated above, there is no clear cut way to troubleshoot an affected website.

Try out a few things, until you end up fixing the problem.

But in most cases, it’s either a hosting related issue or it’s simply a matter of incorrect login details in the wp-config.php file.

Moving forward!

In order to avoid future incidences, make sure to perform regular backups of your database and website files. So if you ever come across the error again, all you will need to do is ping a message to your hosting provider and have a backup restored.

Over to you… Keep us in the loop!

Let us know, in the comment section below, how you fixed the “Error establishing a database connection”. Did one of our suggested methods work for you? Or did you try something else?

Tweet Share Network

About William

Hi, I'm William! I'm a website mechanic that specializes in fixing WordPress websites. Whenever I can, I write a D.I.Y. guide to share my research and processes. I hope the articles help, and thanks for reading and comment if you have questions!

Having Trouble ?

WordPress Services

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Search

WordPress Checklists

WordPress PDF Checklist

Curious to find out if everything is working correctly on your website?

Sign up to our newsletter, download our free Performance, Security, and SEO checklists and audit your website!

Recent Guides

Launching our WordPress Care Plan

WordFence Logo

WordFence Tutorial: How to Enhance your Website’s Security

Push Notifications

Top 10 WordPress Push Notification Plugins to Engage with your Audience!

WordPress Migration

11 Best WordPress Migration Plugins

Database Error

Fix the “Error Establishing a Database Connection” in WordPress

Stay Tuned !

Having Trouble ?

WordPress Support

Footer

How Can We Help?

For a free assessment of your website, simply press the big orange button below!

Support

Latest DIY Guides

Launching our WordPress Care Plan

WordFence Tutorial: How to Enhance your Website’s Security

Top 10 WordPress Push Notification Plugins to Engage with your Audience!

11 Best WordPress Migration Plugins

Featured Services

  • Small Tasks
  • Repair
  • Migration
  • Speed Optimization
  • Malware Removal
  • Redesign
  • WordPress Maintenance Plans

Support Hours EST

Mo. to Fri. 8:00 am - 12:00 am
Sat. & Sun. closed

Leave a Message

WhatsApp

Pay with:

PayPal

Click for the BBB Business Review of this Website Maintenance in St Catherines ON

Preferred Support Partner

PayPal
  • Blog
  • Affiliates
  • Join the Team
  • Contact
  • Terms
  • Privacy
  • Cookies

© 2023 Fixmysite.com

Reg. 310643622

Small support agent

Can we send you 3 performance checklists (SEO, Speed, Security) to your inbox? ✅🚀🔒

Yes Please!