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 on your WordPress website? It is a fatal error that makes your WordPress website inaccessible to the users.

This error occurs when WordPress is unable to make a connection to the database. A number of things can affect your WordPress database connection which makes it a bit difficult for beginners to troubleshoot.

In this article, we will show you how to easily fix the error establishing a database connection in WordPress.

Fixing the database connection error in WordPress

What Causes Error Establishing a Database Connection in WordPress?

The ‘Error establishing a database connection’ issue can be caused by incorrect database information in your WordPress settings, corrupt database, or an irresponsive database server.

Database connection error in WordPress

A database is a software which makes it easy to store, organize, and retrieve data into 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:

  • Database name
  • Database username
  • Database password
  • Database server

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

If any of these items are incorrect, WordPress would fail to connect to your database server, and you’ll see the ‘Error establishing a database connection’ error.

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.

Let’s take a look at how to fix error establishing database connection issue in WordPress with step by step troubleshooting.

Video Tutorial

Subscribe to WPBeginner

If you’d prefer written instructions, just keep reading.

1. Check Your WordPress Database Credentials

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

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

If you have not edited wp-config.php file before, then take a look at our guide on how to edit wp-config.php file in WordPress.

You’ll 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' );

You need to 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. Simply log in to your hosting account and click on MySQL databases under the database section.

We’re using Bluehost dashboard in our screenshot, but the process will be similar in other hosting control panels.

Database information

This will take you to the database management page in your hosting dashboad. From here, you can find out your database name and the username.

Database name and username

Below that you will find the database users and links to change the user password.

Changing database user password

Once you have confirmed your database name, username, and password, 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. Continue reading for more troubleshooting steps.

2. Check Your Database Host Information

If you are confident that your database name, username, and password information is correct, then you may want to make sure that 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.

You need to contact your WordPress hosting company to confirm your database host information.

3. Repair WordPress Database

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. Make sure to add it just before ‘That’s all, stop editing! Happy blogging’ line wp-config.php.

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

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 code from your wp-config.php.

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. Basically, your host server just cannot handle the load (especially when you are on shared hosting).

Your site will get really slow and for some users it may even output the error. So, the best thing you should do is get on the phone or live chat with your hosting provider and ask them if your MySQL server is responsive.

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

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

Make sure to replace the username and password. You can now upload this file to your website and access it via web browser.

If the script 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).

Other Solutions That Have Worked for Users

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

Reported by our users, these steps have helped some users resolve the database connection error on their websites.

1. Update WordPress Site URL

Try updating the WordPress site URL using phpMyAdmin. Simply access phpMyAdmin from your hosting account dashboard, and select your WordPress database.

Running SQL in phpMyAdmin

After that click on 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'

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 server, 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.

We hope this article helped you fix the error establishing a database connection 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 Kevin Wells 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.

WPBeginner Assistant
How can I help you?

By chatting, you consent to this chat being stored according to our privacy policy and your email will be added to receive weekly WordPress tutorials from WPBeginner.