Beginner's Guide for WordPress - Start your WordPress Blog in minutes.
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
WordPress Plugins
View all Guides

How to Fix the Error Establishing a Database Connection in WordPress

Last updated on by
Follow WPBeginner on YouTube
How to Fix the Error Establishing a Database Connection in WordPress

If you have been surfing the web for a while, you have at least seen this error a few times. Error Establishing a Database Connection is one of those curses that could be caused by many reasons. As a WordPress beginner, this could be awfully frustrating specially when it happened on its own without you changing anything. We ran into this issue yesterday on our own site. It took a little over 20 minutes to detect and fix the problem. While doing the research to find possible causes, we realized that there was no good article that covered everything. In this article, 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.

Why do you get this error?

Well in short, you are getting this error because WordPress is unable to establish a database connection. Now the reason why WordPress is unable to establish a database connection can vary. It could be that your database login credentials are wrong or have been changed. It could be that your database server is unresponsive. It could be that your database has been corrupted. In our experience, majority of the times this error happens because of some sort of server error however there could be other factors as well. Lets take a look at how to go about troubleshooting this problem.

Does the problem occur for /wp-admin/ as well?

First thing you should do is to make sure that you are getting the same error on both the front-end of the site, and the back-end of the site (wp-admin). If the error message is the same on both pages “Error establishing a database connection”, then proceed onto the next step. If you are getting a different error on the wp-admin for instance something like “One or more database tables are unavailable. The database may need to be repaired”, then you need to repair your database.

You can do this by adding the following line in your wp-config.php file:

define('WP_ALLOW_REPAIR', true);

Once you have done that, you can see the settings by visiting this page:

WordPress Database Repair

Remember, the user does not need to be logged in to access this functionality when this define is set. This is because its main intent is to repair a corrupted database, Users can often not login when the database is corrupt. So once you are done repairing and optimizing your database, make sure to remove this from your wp-config.php.

If this repair did not fix the problem, or you are having trouble running the repair then continue reading this article as you might find another solution to work.

Checking the WP-Config file

WP-Config.php is probably the single most important file in your entire WordPress installation. This is where you specify the details for WordPress to connect your database. If you changed your root password, or the database user password, then you will need to change this file as well. First thing you should always check is if everything in your wp-config.php file is the same.

define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');

Remember your DB_Host value might not always be localhost. Depending on the host, it will be different. For popular hosts like HostGator, BlueHost, Site5, it is localhost. You can find other host values here.

Some folks suggested that they fixed their problem by replacing localhost with the IP. It is common to see this sort of issue when running WordPress on a local server environment. For example on MAMP, the DB_Host value when changed to the IP may seem to work.

define('DB_HOST', '');

IP’s will vary for online web hosting services.

If everything in this file is correct (make sure you check for typos), then it is fair to say that there is something wrong on the server end.

Check your Web Host (MySQL Server)

Often you will notice this Error establishing database connection when your site gets swarmed with a lot of traffic. Basically, your host server just cannot handle the load (specially when you are on shared hosting). Your site will get really slow and for some users even output the error. So the best thing you should do is get on the phone or livechat with your hosting provider and ask them if your MySQL server is responsive.

For those users who want to test if MySQL server is running yourself, you can do a few things. Test other sites on the same server to see if they are having the issue. If they are also getting the same error, then most definitely there is something wrong with your MySQL server. If you do not have any other site on this same hosting account simply go to your cPanel and try to access phpMyAdmin and connect the database. If you can connect, then we need to verify if your database user has sufficient permission. Create a new file called testconnection.php and paste the following code in it:

$link = mysql_connect('localhost', 'root', 'password');
if (!$link) {
die('Could not connect: ' . mysql_error());
echo 'Connected successfully';

Make sure to replace the username and password. If the connected successfully, then it means that your user has sufficient permission, and there is something else that is wrong. Go back to your wp-config file to make sure that everything there is correct (re-scan for typos).

If you cannot connect to the database by going to phpMyAdmin, then you know it is something with your server. It does not necessarily means that your MySQL server is down. It could mean that your user does not have sufficient permission.

In our case, our MySQL server was running. All other sites on the servers were working fine except for WPBeginner. When we tried going to our phpMyAdmin, we ended up getting the error:

#1045 – Access denied for user ‘foo’@’%’ (using password: YES)

We got on the phone with HostGator and their support quickly found the problem. Somehow our user’s permissions were reset. Not sure how that happened, but apparently that was the reason. They went back in and restore the permissions and we were able to get the site back live.

So if you get the access denied error in either connecting to your phpMyAdmin or through testconnection.php results, then you should contact your host right away to get them to fix it.

Solutions that Worked for Others

It is important to note, that these may not work for you. Use at your own risk and make sure that you have sufficient backups if anything goes wrong.

Deepak Mittal said that his client was getting the error that database needs to be repaired. Even after repairing the database, the error did not go away. He tried various things and at the end, the issue was the site url. Apparently that was changed which caused the error to persist. He ran the SQL query by going to phpMyAdmin:

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

Make sure to replace YOUR_SITE_URL with the actual url example: The wp_options will be different if you have changed the default WordPress database prefix.

This seemed to fix the issue for him and few others that commented on his post as well.

Sachinum suggested that he was able to connect the database with testconnection.php, so he changed the wp-config.php user to the root user. WordPress started to work perfectly fine. Then he reverted the settings back to the database-user, and it continued to work. He could not figure out what was wrong, but concluded that it was a typo.

Cutewonders suggested that they removed the content of active_plugins in wp_options table and edited the contents of recently_edited. Basically that seemed to fix the problem. Please their full response here.

We read on numerous sources that users simply uploaded a fresh copy of WordPress and it fixed the error.

This is a really frustrating error. What have you tried that seemed to work for you? We would be happy to expand on this resource, so others do not have to waste as much time finding a solution.

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi. Page maintained by Syed Balkhi.

WPBeginner's Video Icon
Our HD-Quality tutorial videos for WordPress Beginners will teach you how to use WordPress to create and manage your own website in about an hour. Get started now »


  1. 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)

  2. 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

  3. 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.

  4. 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.

  5. 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!!

  6. 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.

  7. 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 :)

  8. 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!

  9. 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.

  10. 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).

  11. 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!

  12. Sreekant Shenoy says:

    Thanks you bro.. very very 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

  13. 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.

  14. 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.

  15. 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.

  16. 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

  17. Shoaib says:

    Thanks this one helped me :)
    define(‘DB_HOST’, ‘′);

  18. 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.

  19. 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…

  20. 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!

  21. 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.

  22. 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.

  23. KyleM says:

    For me what worked was changing localhost entry in wpconfig.php to; 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.

  24. 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!

  25. 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.

  26. 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.


  27. 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.

  28. WPBeginner Staff says:

    Please contact your web host.

  29. Ali Khan says:

    Doesn’t let me sign into phpmyadmin from my cPanel, saying account is not verified.

  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?

  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. Syed Balkhi says:

    If you’re getting on a welcome screen, then it means that you replaced your database credentials.

  34. 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
    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 !

  35. 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.

  36. 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!!!

  37. 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.

  38. 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’);

  39. Gorillaz says:

    I justed wanted to thank you very much.
    You saved my day.

  40. 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?

  41. 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?

  42. WPBeginner Staff says:

    Jacob, it seems like your database server is frequently down. Contact your web host or switch to a better WordPress Hosting provider.

    As for the facebook issue we will recommend you to use WordPress SEO by Yoast. Once it is activated go to SEO -> Social and check the box next to Add Open Graph meta data.

    • 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.

  43. 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.

  44. Deepika Arodhiya says:

    I have change my hosting. How to proceed? Getting error:

    Error establishing a database connection

  45. 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…..

  46. JD says:

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

  47. zuecell says:

    all my wp on my host error :( should i check one by one :(

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.