Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

How to Fix the Error Establishing a Database Connection in WordPress

Editorial Note: We earn a commission from partner links on WPBeginner. Commissions do not affect our editors' opinions or evaluations. Learn more about Editorial Process.

Are you seeing the ‘Error establishing a database connection’ notice in WordPress?

This is a fatal error that makes your site inaccessible to users. It happens when WordPress is unable to make a connection to the database. Since multiple factors can affect this connection, the error can be a bit difficult to troubleshoot for beginners.

In this article, we will show you how to easily fix the ‘Error establishing a database connection’ on your WordPress site, step by step.

Fix the Error Establishing a Database Connection in WordPress

What Causes the Error Establishing a Database Connection in WordPress?

A database is software that makes it easy to store, organize, and retrieve data from other software.

As a content management system, WordPress uses a database to store all your content and other website data. It then connects to the database each time someone visits your website.

WordPress needs the following information for connecting to the database:

  • Your database name
  • Database username and password
  • Database server

This information is stored in your WordPress configuration file, which is called wp-config.php.

If any of this information is incorrect, then WordPress will fail to connect to your database server, and you will see the ‘Error establishing a database connection’ error.

Database connection error in WordPress

It is one of the most common WordPress errors. Apart from incorrect credentials, this error can also appear if the database server is down or the database files are corrupt.

Having said that, let’s take a look at how to fix the ‘Error establishing database connection’ issue in WordPress with step-by-step troubleshooting.

1. Check Your WordPress Database Credentials

The most common reason for the database connection error is incorrect credentials. If you have recently moved your WordPress site to a new host, then this is likely the problem.

Your WordPress database credentials are stored in the wp-config.php file. It is the WordPress configuration file that contains important settings, including database information.

If you have not edited a wp-config.php file before, then take a look at our beginner’s guide on how to edit the wp-config.php file for more instructions.

You will be looking for the following lines in the wp-config.php file:

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Here, you must make sure that the information for the database name, username, password, and database host is correct.

You can confirm this information from your WordPress hosting account dashboard. For this tutorial, we will be using Bluehost, but the process will be similar for other hosting panels as well.

Upon logging in, click on the ‘Website’ tab in the left column and then switch to the ‘Advanced’ tab. Then, scroll down to the ‘Database’ section and click the ‘Manage’ button next to it.

Click the Manage button next to the Database section

This will open the MySQL Databases page in cPanel in a new window.

Here, you can find your database name and username in the ‘Current Database’ section. Keep in mind to copy and paste these details into a notepad so you can add them to the wp-config file.

Find your database name and username in the Current Databases section

Next, scroll down to the ‘Current Users’ section, where you can click on the ‘Change Password’ link next to your database name.

This will take you to a new screen, where you can change the database password according to your liking.

Change your database password

Once you have confirmed all your database details, you can change that information in your wp-config.php file if needed.

After that, try visiting your website again to see if the database connection error has gone.

If you can still see the error, then this means that something else is wrong.

2. Check Your Database Host Information

If you are confident that your database name, username, and password information are accurate, then you will want to make sure you are using the correct database host information.

Most WordPress hosting companies use localhost as your database host. However, some managed WordPress hosting companies use separate servers to host databases. In that case, your database host information will not be localhost.

This means that you will need to contact your WordPress hosting company to confirm these details.

3. Repair WordPress Database

Now you may be getting a different error in the wp-admin dashboard like ‘One or more database tables are unavailable’ or ‘The database may need to be repaired’. In that case, you need to repair your database.

You can do this by adding the following line in your wp-config.php file. Make sure to add it just before the ‘That’s all, stop editing! Happy blogging’ line:

define('WP_ALLOW_REPAIR', true);

Once you have done that, you can see the settings by visiting this page: http://www.yoursite.com/wp-admin/maint/repair.php. Just make sure to replace yoursite.com with your own domain name.

Here, you must click the ‘Repair Database’ button to start the process.

Repair WordPress database

Note: The user does not need to be logged in to access the database repair page. Once you are done repairing and optimizing your database, make sure to remove this line to code from your wp-config.php.

However, if you don’t want to add any code to your site, then you can also repair your database from your hosting account’s cPanel.

Go ahead and visit your hosting account, where you must open the ‘Websites’ page from the left column. Then, switch to the ‘Advanced’ tab and click the ‘Manage’ button in the Database section.

Click the Manage button next to the Database section

This will open cPanel in a new tab. Here, scroll down to the ‘Modify Databases’ section and choose your database’s name from the ‘Repair Database’ dropdown menu.

Once you do that, simply click the ‘Repair Database’ button to start the process.

Click the Repair database button

The hosting panel will now automatically repair your database for you.

Once the process is complete, you will also see a success message.

Database repair success message

You can now visit your WordPress site to see if the error has been resolved or not.

4. Check If Your Database Server Is Down

If everything seems to be correct, and WordPress still cannot connect to the database, then your database server (MySQL server) may be down.

This could happen due to heavy traffic on a server. Your host server just cannot handle the load (especially when you are on shared hosting).

Due to this, your site will get slow, and may even output the error for some users. In this case, you should get on the phone call or live chat with your hosting provider and ask them if your MySQL server is responsive.

Additionally, if you have other websites running on the same server, then you can check those sites to confirm that your SQL server is down.

If you do not have any other site on the same hosting account, then simply go to your hosting dashboard and switch to the ‘Advanced’ tab.

After that, click the ‘Manage’ button next to the phpMyAdmin section.

Click the Manage button next to the PHPMyAdmin option

This will open phpMyAdmin in a new window, where you must click the ‘Database’ option at the top.

After that, click on your database’s name to access its settings. If you can do that, then it is time for you to check if your database user has sufficient permissions.

Connect PHPMyAdmin with your database

To do this, you need to create a new file called testconnection.php and paste the following code into it:

<?php
$link = mysqli_connect('localhost', 'username', 'password');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>

Upon pasting the code, make sure to replace the username and password with your own. You can now upload this file to your website and access it via a web browser.

If the script connected successfully, then it means that your user has sufficient permissions, and something else is causing the error.

Now, you must go back to your wp-config file and scan it to ensure that all the details are accurate and without any typos.

Additional Solutions That Have Worked for Users

If the above-mentioned troubleshooting tips fail to fix the database connection error on your website, then you may try these additional steps.

As reported by our users, these steps have helped some of them resolve the database connection error on their websites.

1. Update the WordPress Site URL

You can try updating the WordPress site URL using phpMyAdmin in cPanel.

Simply access phpMyAdmin from your hosting account dashboard and select your WordPress database from the list.

After that switch to the SQL menu on the top and enter the following MySQL query:

UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'

It should look like this:

Change site URL

Don’t forget to provide your own site URL and change wp_options to your own table name, as you may have changed the WordPress table prefix.

2. Rebooting Web Server

Users on dedicated servers, local servers, and virtual private servers (VPS) can try rebooting their servers.

This will restart your web and database server, which may fix some temporary glitches causing the error.

3. Ask For Help

If everything else fails, then you may need to contact your web hosting company. All good WordPress hosting companies will help you troubleshoot the problem, point you in the right direction, or even fix it for you.

You can also hire WordPress developers using a service like Seahawk to help you fix this issue for reasonable rates. The best part is that Seahawk has a dedicated team of expert developers, so you know they can be trusted.

Seahawk Media

Plus, you can use the service for your site maintenance, Figma to WordPress conversion, hacked site repair, speed optimization, website rebuilding, content writing, and so much more.

For details, you can see our complete Seahawk Media review.

We hope this article helped you fix the ‘Error establishing a database connection’ issue in WordPress. You may also want to see our WordPress troubleshooting guide for tips on resolving WordPress issues on your own, or our expert picks of the best tools for WordPress freelancers and developers.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

661 CommentsLeave a Reply

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Faran says

    Thank God I found this article. Replacing wordpress database password and username with my cpanel login credentials got me through it.

  3. Adrian Ramos says

    Thank you!

    i solved the problem by changing my new username and password in the wp-config file.

    Regards

  4. Giorgos says

    Another solution that worked. Delete the current MySql user and add a new one. It’s a solution for this specific error:
    Access denied for user ‘foo’@’%’ (using password: YES)

  5. Derek Morrison says

    Hi, Im a long way in to my blog with txt and pictures however, I am new to this and now finding my uploading of media is freezing 4/5 in and goes to error. Looking on the web found many others have had this problem, however, the common stream is increase image memory I’ve only used 115 MB what’s going on does anyone know? I’m very frustrated as I can try and try for HOURS sometimes to upload
    Thank you

  6. Paul Hutchinson says

    Had this error pop up yesterday on my ten year old WordPress installation that is hosted @ GoDaddy.

    Turns out GoDaddy changed the Hostname for the SQL server. updated the DB_Host value and all is working fine.

    Thanks for the detailed post about this issue.

  7. Bhavesh says

    I do have same issue with GoDaddy, tried everything out from this post and others.

    but not get any result.

    After heading everything I just tried to change the user name as it was same as database name before.

    and the issue solved.

    so thought the issue is having database and username is same for the DB.

  8. Kaustav Banerjee says

    Super effective article. It has just happened with me. The most common mistake of all is the difference between password set for database user from backend and the one mentioned in wp-config .How could I forget this…
    Thanks a lot!!

  9. alex.s says

    One thing that needs to be mentioned that if you are using MAMP the password for the database is root as a default. This little thing took me hrs to figure out.

  10. Dlee says

    Thanks for this guide, it really saved me! I changed my database password not realizing what would happen, I managed to fix it thanks to this guide though :)

  11. Dev says

    If it helps, I would like to add that my particular problem occurred when I updated the password to my database through godaddy, and the wp-config file did NOT update the password, I had to go in manually to change it.

    /** MySQL database password */
    define(‘DB_PASSWORD’, ‘PasswordGoesHere);

    • Jesse Josserand says

      I pretty much had to do everything above including changing the password in wp-config. After all that… and editing my sql backup I was restoring so that it used the correct db_name and username and password, as well, everything started work except for errors caused by problems with the super cache plugin. I’m still fighting that issue, but hallelujah to God and all y’all above for getting me this far!

  12. David Kley says

    This is why we use Joomla more than WordPress. ;)

    Easier to move, easier to set up quickly, easier to troubleshoot. WordPress makes it a huge pain if you want to move your site to another server or change domains. To each their own though. Each has it’s own set of weaknesses.

  13. Bev says

    I have the problem intermittently and randomly. It doesn’t stop the site from working entirely, the ‘error establishing a database connection’ message shows up randomly (both backend and frontend). My host says the problem is a plugin conflict. I’d be happy to test that but because the problem is random, I can’t tell immediately if deactivating a plugin will help. Arrggh!

    • Steph says

      We started having this issue recently as well. We contacted our host and they said it sounds like our database is either maxing its connections or our tables are locked during a call (which would most likely happen from a plugin).

  14. Tomas Hujer says

    Hi, in my case it was been problem in bad domain values in table wp_blogs. There must be valid domains.

    Good Luck!

  15. Sreekant Shenoy says

    Thanks you bro.. very very much..it workd.. :D I am very happy..luv you so much..I am on GoDaddy and i just placed the testfile.php and it workd..Thank you very much <3 <3 <3 <3

  16. Joel Donfak says

    I had the same issue with a new website and I finally found that the MySQL username in the CPANEL was not linked to the database. After doing it, it work properly!

    So make sure the problem doesn’t come from there.

  17. Ed says

    I changed my MySQL password for security reasons and updated it right away in wp-config but now I get the “Error Establishing a Database Connection” on both front and back end. I know my login credentials work as I can connect fine to phpMyAdmin.

    – I tried a fresh re-install of WordPress via FTP (without overwriting wp-config or wp-content folder) and that didn’t help.

    – I am trying to do the database repair method mentioned above but I can’t even access that page as it won’t let me get past the database connection error.

    – I tried the test connection method and get the following error:

    Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /srv/users/serverpilot/apps/xxxxxx/public/testconnection.php on line 2

    Warning: mysql_connect(): Access denied for user ‘root’@’localhost’ (using password: YES) in /srv/users/serverpilot/apps/xxxxxxxx/public/testconnection.php on line 2
    Error: Access denied for user ‘root’@’localhost’ (using password: YES)

    None of these solutions work! Please help someone! I haven’t touched my wordpress site or made any changes prior to the mySQL password update so I know it’s not a wordpress code or plugin issue. Would nginx or cache effect this?

    • dev says

      Go to wp-config file and find this:

      /** MySQL database password */
      define(‘DB_PASSWORD’, ‘PasswordGoesHere’);

      Make sure the password matches what you use to log in to your database.

  18. Kyle Coombs says

    So, I have always accessed WordPress via the internet and never downloaded the client onto my computer. I’ve always wondered why someone would want to do that and now I think I understand why after receiving this same error message.

    I’m curious, can I do any if I cannot access my WordPress account to make these changes listed? Or do I need to contact my host or hope that problem resolves itself?

    Just checking if there’s anything I can do on the front end.

  19. Dave_Whittle says

    I had this error yesterday, and to make a long story short, the solution was as simple as restarting MySQL, i.e. issuing the following commands from the command line:

    sudo mysql stop
    sudo mysql start

  20. mohadsl says

    Hi, I have been reading this message over and over when I log in to another domain for my WordPress. Please help

    Error: Unable to find the specified administrator account in WordPress. Specify the username of your administrator’s account in WordPress. This account will be associated with Plesk.

  21. Kurtis says

    I was trying to load my website (from backups) to a new hosting company today. It was tricky figuring out how to make it work. Ended up installing and uninstalling a bunch of times due to some mistakes. I first tried loading my wordpress files via FTP and creating a new Mysql database manually in my hosting control panel, but I could not get the two to see eachother and could not import my backed up SQL file to the new database, finally figured out (after some trial and error), i needed to install a fresh wordpress from my hosting control panel which installs wordpress for me and creates a database. Once there is a linked database you can drop all the tables, and import the backed up database. I would then upload my wordpress backup via FTP on top of the fresh install and choose ‘Overwrite’. When it finished, I had the front page of my website showing up like it was working, but all the pages were “object not found, no database, or page outdated, please notify the author, etc.”…. I tried repairing/optimizing the database, which did not help…. I updated my wp-config file with the right database info, which did not fix it….So I uninstalled everything and started over many times (uninstalling reinstalling with the same results — FINALLY WHAT WORKED. fresh wordpress install via my control panel, I used the same username password for the admin that I previously had used on my old site (this helped my new wordpress “see the mysql backup” better once I imported it), then FTP the wordpress backup files on top of the fresh install with overwrite option. change the wp-config code to the new database info (mine was a new database name/pw everytime i reinstalled wordpress). After I did all of this I was getting the front page but still getting “object not found” pages for everything else. BUT now I could login to my admin…. once I was at this point, I realized that wordpress or the server wass checking itself (updating itself) after all of the major changes I had made via FTP and MySQL…. basically just wait, I think I waited a half hour to an hour and I started seeing my other pages (without graphics), took a nap, and then all the pages were there. I only had a few pages and posts but after such major changes, the server had to catch up and verify itself, I think…

  22. Jhood says

    Just wanted to share my experience – I received this error when I created my account in cPanel with a user name that was more than 8 characters long. Apparently it confused the WordPress installer, and it couldn’t create the database.

    So I just deleted the entire Cpanel account and started over with a cPanel user name of 8 characters – worked like a charm!

  23. Sarah Baker says

    I tried just about all these things and nothing worked – just about but not all. I’m not an expert but not a beginner. Finally, I decided to delete the account from the server (new site with no data yet), start over, and install WordPress manually. I use Rochen which uses cPanel and Fantastico and it’s only been recently that I’ve been having this problem.

    Installing manually worked fine and I had no problems. Will be submitting a support ticket to Rochen for sure.

  24. Penina says

    I built my site on an Amazon ec2 instance and frequently get the Error establishing database connection on both the frontend and backend. what I do that always solves the problem is telnet into the server and restart mysqld. But I was wondering what the underlying issue was that is always causing this error to recur. any ideas??

    • shaun2k says

      You’re running out of RAM and memory management is killing your mysqld process. You will need to upgrade to an instance that has at least 2GB RAM. I’m tipping you’re on free tier and you have 1GB of RAM.

  25. KyleM says

    For me what worked was changing localhost entry in wpconfig.php to 127.0.0.1; they may work with out doing all of the above so its a quick. I must say all this data above was a good start for me to understand the problem and root cause.

  26. Christina Torres says

    Totally random, and maybe this is dumb, but I realized my problem on Mac was that it kept changing a regular ‘ into a stylized one in text edit every time I added in my username, password, database name, etc, even as a text file. weird. anyway, thanks for the help!

  27. Colin Murphy says

    Just incase other people have had the same issue you get this error also on a multisite installation if the URL’s in the wp_blogs are not set correctly . I had this issue this morning when moving the site from my dev version to staging.

  28. Jack Bobeck says

    I just experienced it on our site, first time. So I did as you recommended, called Bluehost, our host provider to find out WTH? They said that our database is limited to 15 connections at once, and that because of activity, when you hit that ceiling, you get that error. So they suggested we run a test on all of our plugins and see if there are some that are hogging connections, then run a program that converts our pages to HTML pages as a backup, in case people want to access the site as a backup and do so in a quicker manner. I hope this makes sense, not an expert web guy, but just repeating best I can. But best thing to do first is contact your host provider for answers.

    Jack

  29. Ryan Turner says

    I just had the same problem for my site. Went through the article and didn’t see anything out of the ordinary. messing around in wordpress I reset my ‘WP Super Cache’ plugin to the defaults and cleared it out and my site started working again.

  30. Daniel DeNewasha says

    Intermittently I get the following error visiting the site. There’s absolutely nothing on major search engines with this error number alone. I can get to wp-admin, which is the sites login page with theme loaded, etc. and login. In Admin, I can do anything with no issues. Sometimes I can visit the site, other times not, even in different browsers, e.g., on refresh may or may not appear. Have done the repair and settings show no errors. I am on Godaddy shared hosting. Just finished building site so very little content, DB incredibly small 2mb on export.

    “ERROR 677-402iqz. We’re sorry, error reading database, missing or
    corrupt. This website is no longer unavailable.”

    Any ideas anyone?
    Thanks
    Daniel

  31. WPBeginner Staff says

    WordPress stores all your site’s information in a database, which is managed by a database server. If for some reason WordPress is unable to connect to the database server then you will get this error. Please contact your web hosting provider for support.

  32. terry says

    I was trying to fix non appearance of widgets on my site when I got
    “Could not connect to the DB Server!”
    . Even when I just enter the site in the address box or include wp-admin.
    I have no idea now. Just assume I am a 5 year old idiot if you reply.

  33. john says

    Hi my site has been off since this morning telling me Error establishing a database connection in french since it is a french website http://c2cteaching.com
    I called my host who told me to modify my wp-config.php, and since we did I land on a welcome setting page of wordpress ! I’m getting crazy, what can i do ? help me please !

  34. Vijay says

    Hi, I had this error show up on our primary domain, add-on domains and a sub-domain.

    I use GoDaddy for hosting.

    Long story short: We found that because for some reason the MySQL databases table inside hosting > databases didn’t have any users attached to the databases that the sites were showing this particular error.

    Just below that table on the right hand side, there is a ‘Add User to Database’ section. I assigned each user to a database. So, i388299_wp1 was selected as user and i388299_wp1 was selected as the database and all the sites started working fine again.

    So, there is a bug in GoDaddy that causes users to be deleted from that list for some strange reason.

  35. karelles says

    I was trying to clean up and tossed some mysql servers (they’re all one anyway) that I thought I wasn’t using and one of my site alarms went off. Sure enough that site was using the server that I tossed. Changed to a different server (as I said they’re all one) in the wp-config file and all was again well. Thanks!!!

  36. Vonnie Hudson says

    I had this problem today on my VPS. Error establishing connection to Database. Checked disk space and confirmed it was fine but memory usage was almost depleted. I ran sudo free -m and top to find the biggest offenders but couldn’t really figure it out. I had something like 5MB of RAM left. I even rebooted the server but that didn’t fix it. So I just waited and eventually it came back – my only guess at this point is that my server was inundated with too much traffic. But it’s a VPS so I don’t know what’s going on. I hope this doesn’t happen again tomorrow –

    • random guy says

      You need to get a fully managed cpanel VPS so that someone that knows what they are doing can assist you.

      When you have 5mb of ram left, you are stuffed. The server would be slowing down immensely. From here, upgrading the ram, or installing cpnigix, or having someone fine tune the VPS, can all reduce your ram usage and improve performance.

  37. rookie says

    Thank you so much for your help.

    I am just a rookie that had to do this job.

    This helped me:

    1define(‘DB_NAME’, ‘database-name’);

    2define(‘DB_USER’, ‘database-username’);

    3define(‘DB_PASSWORD’, ‘database-password’);

    4define(‘DB_HOST’, ‘localhost’);

  38. Luke says

    I rebooted my server. Problem solved. You might want to mention that first in the article. Saves time, lol.

    Log into ubuntu 12.04 -> Reboot

    • Jack says

      I had this same issue. I rebooted the server, problem resolved but wp-admin panel is running too much slow since i rebooted the server. Any idea?

  39. vanda says

    I met a problem , I can’t go to front end it show the message that
    “Error establishing a database connection” of my page I did it on localhost, what can I do?

    • Aaron Winters says

      I’m having same issue as Jacob had, but on my local install. In the time it takes to make an edit of any sort, I sporadically get sent to the “Error establishing a database connection” page. (Only on Admin side) 1 in 5 times it actually forwards past it on its own and completes the update, otherwise I have to copy the entire post, paste over the old, submit over and over until it finally accepts. Also happens on image uploads. No problem on the remote host that I know of.

  40. Jacob Wall says

    I get the error sporadically – only when I’m signed into my admin account. Although one blog reader did inform me that once it took her 4 attempts to load the main page. It never lasts long, but happens often (4 or 5 times a day?).

    Also, while I am writing blogs, I will often get a “Connection to server lost” error, and then I have to wait for it to reconnect before I can save. As I said, it never lasts more than about 15 minutes, but often enough so it makes writing blog posts a very time consuming process.

    Finally, when I try to share on FB, the preview doesn’t show up – only a link. I have know idea if these three errors are related, but they seem to show up around the same time, and all three are too frequent.

  41. uvraj says

    I have anothere issue here.. the posts are working fine. but in the main url, the error “error establishing database connection” is appearing? Is there something with my theme? I am not able to figure it out…..

  42. JD says

    Thank you! Appreciate the post. Worked for me, although had to do a combination of the methods stated!
    Thanks!

Leave a Reply to Laura Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.