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. Abul Fayes says

    Either ‘127.0.0.1:8889’ or ‘localhost:8889’ works for me. Just using ‘localhost’ with no port specified does not work. I am using MAMP

  3. Joe says

    The frontend of my site is connecting but the wp-admin section is showing the error establishing a database connection.

    What do I do?

  4. Gill says

    Thanks! Life saver. Completely borked my site changing passwords. Could have sworn I’d done everything right but managed to fix it in config.

  5. Praveen says

    My problem was due to a google analytics plugin, the day i installed it, my site was down saying “Error database connection!” Even I was unable to login into my admin panel. So, I manually removed that plugin from cpanel, and everything worked.

    • Andreja says

      Hi Praveen,

      thank you for your info. Can you please explain how to find particular plugin in cpanel to remove it? I received this error message right after I’ve installed “All in one SEO pack” plug-in in my Worpress site so I guess it could be the same problem as your problem was…?

      Thank you in advance!

  6. Matt says

    I was on a Digital Ocean 512MB droplet and was getting this error every couple of weeks. Inspecting the logs showed that a process called update-apt-xapi was consuming all of my memory and causing the mysql service to crash resulting in the error. You can try setting up a swap file but, really, 512MB just isn’t enough memory to run a WordPress install. Upgrade your droplet to 1GB and that should take care of the issue.

    • Joween Flores says

      We have the same issue here friend. How’s your website going since? I was trying to cheap on server expenses now.

  7. Ob says

    I just checked MySQL server with “service mysql status”. Apparently, MySQL server was not running.
    So, I started it with: “service mysql start”. And Voila! my website was up.

  8. Kishan SHarma says

    What i found is it was faulty plugin which was causing trouble , try deactivate plugins and check if problem persist. changing localhost to 127.0.0.1 also solved some issues

  9. Jim Zimmer says

    I did a search through your post and didn’t find anything about SELinux being the culprit, which ultimately was my problem. I have segregated my web server from my database and disabled SELinux on both VMs. I tried your testconnection.php, which was successful from within the /var/www/html directory before disabling SELinux, so I really have no idea if it is the database or the web server that has the issue. I will try and update this comment with SELinux settings that work when I have tested it.

  10. Andrea says

    I have this problem right after having changed the password for my admin access. Can you super kindly provide a solution written in a language understandable for someone who has close to 0 programming or web-developer knowledge?? I have the error for both front-end and back-end. I have NO IDEA how to “check the wp-config.php” file (never heard of it until now). How do I proceed?

    Thank you so much,
    Best,
    Andrea

  11. Binyam says

    What did work for me was this: In cPanel, go to Advanced Zone Editor select the domain copy the recorded IP and as wpbeginner suggested I replacing localhost with the IP and it works! Thanks!

  12. Avinash says

    I was having the connection problem. The problem was my previously installed MySQL, was running. So I stopped it and then ran MySQL of Xampp. It worked. Hope it helps.

  13. Avinash says

    My previously installed mySQL was running. I stopped it and then ran mySQL that came with Xampp. it worked. Hope it helps.

  14. Swati says

    We had our wordpress installed on AWS EC2 and we got the “Error establishing database connection” for all our sites when the database was installed on the same server as the web server. When the database was moved to Amazon RDS for each of our sites, that error did not recur.

  15. Scott says

    Greetings.

    I have recently experienced the same issue when moving my multi-site from a subdirectory to root. Even after going through all the steps outlined in various tutorials, I encountered this dreaded message and nothing I did seemed to work.

    What did work for me was this: In cPanel, go to your softaculous script installer, select the edit icon for your WordPress installation, change the paths that point to your install.

    Once I did this and saved, then navigated to my site URL, it was back up and running smoothly.

    Just wanted to leave this here in case it helps someone else along the way.

  16. Sysy says

    I have an issue with database connection. I wanted to create a new database for a new website #2 connected in multisite in OVH, and when wordpress asked me to enter login, password etc I entered those of website #1 as I had to do BUT without changing “wp_” for “wp_2″… And now both of these two sites have the message “Error establishing a database connection”. I deleted all FTP WP for website #2 and deconnected from multisite, but impossible to get back and to enter in website #1!! Do you know how to resolve this problem?

  17. Taurai says

    I’m having an issue with my website, my WordPress database just seams to disappear. logged into MySQL and nothing exist there anymore. has anyone ever experienced this? anyone with a solution?

  18. Gail Gardner says

    The cause of this issue when I had it was so many people running hacking programs against my login page that they were impacting the server. It happened every Friday evening through Sunday evening.

    We eliminated the issue by protecting that page with a pop-up so they couldn’t run their automated hacking programs against the login page.

  19. Rita says

    Thank you for posting this–it saved a bit of a panic when the company’s WP blog disappeared behind this error. After verifying that the database was still there and undamaged, I called our host.

    Turns out they’ve been migrating customers’ web sites to new and improved servers, and they somehow lost the connection info. Hopefully it will be repaired today.

    But a very informative article, and a quick reminder (for me) of how to check in on mySQL to make sure everything is still good. Thanks!

  20. adams says

    i cant create pages, new post, or edit my themes or even upload pictures i constantly get the following error…

    This page isn’t working.
    didn’t send any data.
    ERR_EMPTY_RESPONSE
    the website setup is new but am faced with this problem

  21. jitesh says

    How can i find my wordpress database username and password?

    By Mistake, i have deleted wp-config.php file and now i have uploaded new files.

    I am Using Godaddy’s windows server…

    I am getting below error:

    This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at . This could mean your host’s database server is down.

    Are you sure you have the correct username and password? Are you sure that you have typed the correct hostname? Are you sure that the database server is running? If you’re unsure what these terms mean you should probably contact your host. If you still need help you can always visit the WordPress Support Forums.

    Please help me as I have wasted by complete week…

    Thank you..

    • WPBeginner Support says

      Hey Jitesh,

      You can login to your hosting control panel and locate the MySQL database section. Most likely, you will be able to find the database name, username, and password information there. Alternately, you can contact support to help you locate that information.

      Admin

  22. Bob says

    Thanks so much, all, for maintaining such a great website! You guys continue to bail me out with problems, issues & fixes for those of us who just enjoy writing & posting and not dealing with all of the WordPress programming stuff. Great work!
    Cheers!!!!

  23. Joette says

    Thanks for all the great articles. I am having such a problem tho just getting WP installed. I’ve followed your instructions regarding doing it with MAMP and keep getting the “can’t connect to localhost:8888” msg. After much searching I found a terminal code to test apache. It returned with httpd not running, trying to start. I did it again and it didn’t return anything so perhaps worked.

    I tried connecting to local host again and this time I got Error connecting to database. At least this seems like progress! I tried some of your suggestions above and this time, it seemed to be trying to connect for quite a while, but finally gave me the Error connecting to database again.

    I have yet to get the happy WP page. Does anyone at all have any ideas as to what is going on? I have spent hours searching, contacting, trying this and that and I don’t know what else to do at this point. I am an absolute WP beginner.

    Thanks to anyone/everyone in advance.

    • Ashley Knox says

      Hey! Were you able to figure it out? I’ve tried all of their solutions and I’m still stomped.

      • Joette says

        Hi Ashley, No, unfortunately nothing is working for me either! I’ve yet to find someone who knows the answer & have been asking many places. For me, I think I’m going to use different software and leave WP for another time. Too strange, too much hassle.

        • Kalico says

          This isn’t a WordPress problem, it’s a MAMP problem. If you have to run this on a local server, try a different XAMP package. Better yet, get a shared hosting account and set it up there. Local XAMP can be frustrating.

  24. J M Landers says

    I missed that when you add the repair line to your WP config file you have to add it right at the end of the declarations before the first “if” statement when I first read it. Took me a while to realize what I was doing wrong. Still didn’t fix my problem but at least I was able to strike one possible issue off my list.

  25. Muhammad Qamar40391 says

    Thank you for a great helpful post.
    Solved by resetting DB password but this process repeated several times. issue solved but page speed is too much slow now.

  26. John Malto says

    Also had the same problem and tried everything. TestConnection was failing. What I just had to do was manually edit the user password through MySQL Cpanel and it suddenly worked!

  27. Leslie limardo says

    I am so confused. First time on wordpress. No tech experience whatsoever. I didn’t receive any error. message. My website is up. The problem I had is when I set the page to update some updates would take effect and others didn’t. I called WordPress and they told me I didn’t set up the database correctly. Is this the same issue as this article or something totally different? Thanks in advance.

  28. Fran says

    Hi, i had this problem when I formatted my laptop and reinstalled XAMPP.

    Problem was, I forgot to create a new Mysql user with the same data (host, name and password) from my BD user stored on wp-config.php, just like we do when we configure one new WP site for the first time. That solved it :)

    So, maybe the problem is not that the user has not enough permissions… perhaps the problem is, user simply doesn´t exist yn mysql.user table! (as I said, it can be possible after formatting your computer).

  29. Kate says

    I just had the same problem, which I managed to solve by simply changing the DB password and correcting that in the config.php file.

    I have no idea why the password suddenly became an issue, though.

  30. Sheriph says

    Changing the localhost in my wp-config.php to the ip on my host account in godaddy cpanel did the magic for me. Even godaddy support were talking rubbish. Imagine telling to upgrade with about $200, that my hosting plan is low on resources. I almost believed until I found this article. Thanks a lot.

    • Steve says

      I still have the problem. GoDaddy tried but unable to help. They have a service that, for $80.00, will have a WordPress expert investigate. However, there are no guarantees she / he can fix the problem but you still have to pay the $80.00.

  31. Destiny Alabi says

    This review was very helpful,

    I had a similar issue with installation on windows server, I kept getting database error, and what I did was to replace localhost which was internal server to IP Address and Port which was external server and it worked perfectly.

  32. Sam says

    Mine just happened like 20 minutes ago, I am hosting at Ipage and WHAT A SCARE!!! It happened all over sudden and I could not access both the admin site and the website itself with my laptop but I could access the site with my phone.
    Then before I could complete reading this guide the site got back by itself lol. I want to know if there is a way to avoid this from happening in future.

    • Bongani Ngcobo says

      This was helpful, Thank you very much. I always rely on WP Beginner when struggling.

  33. sreekan th reddy says

    my website is showing database connection error .

    can some one help me to solve the problem

    my website is created in amazonweb service

    for every 24 hours it showing database connection error
    the php-myadmin ,wp-content every thing is fine
    can plz some one help to solve this issue

  34. Martin L. says

    I have no WordPress account, but have been having this happen to me a lot recently on several sites. How can I fix this? (Note: I don’t own these other sites and I don’t think I can access their databases directly)

  35. imparthi says

    Thanks much for the article. I ran into the same issue.
    1. Wp-Config file was correct
    2. phpMyadmin connection was success
    3. testconnection.php approach too was success
    4. I tried to update the site URL I couldn’t get it as naming conventions of the table names of the WP changed

    THIS IS WHAT HELPED ME FINALLY.
    I selected wp_Options” table in the phpMyAdmin window to browse the content, there was an informative Error message that, the table has to be repaired. (wp-config auto-repair didn’t work out)

    I was able to repair using the options available in phpMyAdmin and got my site back. :) Thanks all.

  36. jhaejhae jhaens says

    hi there.. can i please seek help.. i am working now on transferring my live WordPress site to local using XAMPP.. my database is doing good but i cant connect it during the WordPress installation. please help.. thanks in advance!

  37. Tanya says

    Hi there,

    Thank you for this article. My website was hacked recently and after I got no support from the hosting provider, I was told I was going to need to reinstall WordPress and upload the backup. I didn’t use a backup plugins (I am all the way in South Africa) as it is to expensive for the paid plugins. So I did a cpanel backup through Softaculous and downloaded the Zip of 1.03Gig. Two weeks later my site was hacked (Twice in one week). With the second hack my wordpress installation was comprimised – and backup deleted from server. So I had to delete the original installation and reinstall. Now I followed all the steps to upload the zip to file manager and now I am stuck with this: Error Establishing a Database Connection. I have tried all the suggested solutions from this post, but still no progress. Please help me! I am quite new to wordpress and this is my biggest client’s website.
    Kind regards,
    Tanya

    • WPBeginner Support says

      Hi Tanya,

      The most common reason for this error is incorrect Database information in your wp-config.php file. Confirm that you have restored your WordPress database correctly, then enter the mysql host, database name, database username and password carefully. If you are unsure, ask your hosting provider and they will let you know your mysql host and other information.

      Hope this helps

      Admin

  38. Mannu says

    Some folks suggested that they fixed their problem by replacing localhost with the IP.

    It worked for me….
    Any logical explanation for this…?

    • Nick says

      Think about it. ‘Localhost’ is the name of a location. If changing that to the IP works, then ‘localhost’ was not pointing where you need it to be.

  39. Ravi says

    I have MAMP installation on my Macbook. i.e I am running MySQL also on my local machine. My problem was that in wp-config.php, the database server ‘localhost’ is not working. Once I changed it to 127.0.0.1, it started working.

  40. Mike Crisp says

    Repair database command worked for me.
    Front end or site was fine but couldn’t access admin panel – Repair found a damaged database file (wp-options) – repair worked

  41. JP Hoey says

    What i did was, in the cPalen i went into MySQL databases and scrolled down to current user and changed the password. I used the very same password that was in my wp-config.php file but for some reason the password was corrupt. Everything works fine now.

    • Chuck Moran says

      I got this error on a client’s site. After a bum steer chatting with a Bluehost tech, I called back and the phone tech support person I got did this same @JP Hoey trick (changing the DB pass and updating it in wp-config.php). Took 5 minutes and worked like a charm.

  42. Adam Coalbow says

    An obscure one for me…

    Don’t use #’s in your password.

    I had two hash tags in my password that was throwing something off in the PHP–since hash tags create comments I guess. I removed the hash tags and BOOM, I’m in.

  43. Ted Richards says

    First thank you for a well-documented article on “We were able to connect to the database server (which means your username and password is okay) but not able to select the XXXXXX database.”

    I tried almost everything outlined in the article but can’t fix my problem. Here is an outline and history.

    Local machine installation:
    I have installed MySQL 5.7.17 and MySQL WorkBench 6.3.8. And WordPress 4.7.2. The MySQL was installed after removing both an earlier version of MySQL and WorkBench. The previous version was displaying the same database error. The previous WordPress/MySQL worked about 2 years ago, but recently I contracted a project to develop a WordPress Web site, and I encountered this problem when I began setting up the new WordPress framework for this new site. The old WordPress site was deleted so I couldn’t test if that worked.

    So, I reasoned, why not try a fresh start and also upgrade to the latest versions, etc.

    But, this new version also had the same problem with not being able to connect to the database. I have narrowed down the problem to “permissions” and I haven’t been able to crack the code.

    The MySQL Server logs verify this is this case:
    Timestamp, Thread, Type, Details
    2017-01-28T02:46:24, 134, Note, Access denied for user ‘root’@’localhost’ (using password: YES)

    I have created a new WP directory and installed a fresh WP version etc.
    I deleted and created new databases in WorkBench and properly assigned them users and passwords.

    I have checked the Users and Privileges, Client Connections and can find nothing that would block access to the database.

    I have checked my Windows 7 permissions for the MySQL Directory and the sub directories. I have unchecked the “Read Only” to the master MySQL Directory and all directories and files are read/write.

    I have progressed through each attempt to connect to the database each time I change something.

    I am exhausted and very disappointed there isn’t a good response by the WP Support Team to this issue of “not able to select the database.” It is a “popular” issue that many developers are experiencing with no resolution–many more experienced than me, are having.

    You are my last hope!

    Thank you!

Leave a Reply to Manohar 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.