The ‘Error establishing a database connection’ notice in WordPress is a fatal error that makes your site inaccessible to users. It happens when WordPress is unable to connect to the database.
Since multiple factors can affect this connection, the error can be a bit difficult to troubleshoot for beginners.
We have been running our blog on WordPress for the past 16 years and have encountered a variety of errors and warnings, including the ‘Error establishing a database connection.’ Through our experience and lots of trial and error, we’ve learned how to troubleshoot these issues without disrupting our site.
In this article, we will show you how to easily fix the ‘Error establishing a database connection’ on your WordPress site, step by step.
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.
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
Incorrect credentials are the most common cause of the database connection error. If you 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.
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.
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.
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, such as ‘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.
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 using 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.
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.
The hosting panel will now automatically repair your database for you.
Once the process is complete, you will also see a 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.
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.
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:
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 platform like WPBeginner Pro Services to help you fix this issue for reasonable rates. We have a dedicated team of expert developers that you can trust to resolve any of your WordPress issues.
You can also use the service for site maintenance, hacked site repair, speed optimization, website rebuilding, and SEO optimization.
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 tutorial on how to add a custom database error page in WordPress.
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.
Abul Fayes
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
Joe
The frontend of my site is connecting but the wp-admin section is showing the error establishing a database connection.
What do I do?
ALEX
Thank you, it worked!!!
Gill
Thanks! Life saver. Completely borked my site changing passwords. Could have sworn I’d done everything right but managed to fix it in config.
Praveen
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
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!
Matt
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
We have the same issue here friend. How’s your website going since? I was trying to cheap on server expenses now.
Ob
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.
Kishan SHarma
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
Jim Zimmer
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.
Andrea
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
Binyam
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!
Avinash
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.
Avinash
My previously installed mySQL was running. I stopped it and then ran mySQL that came with Xampp. it worked. Hope it helps.
Swati
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.
Luis Daniel
Hi!
This helped me a lot with a WP installation going bad. Thanks!
Scott
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.
John Henry Gaspay
Thanks man, it work on ngnix server due to error establishing.
Sysy
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?
Taurai
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?
Gail Gardner
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.
Rita
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!
adams
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
Wayne
Thanks. Helped me debug a DB backend issue.
jitesh
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
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
Bob
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!!!!
Joette
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
Hey! Were you able to figure it out? I’ve tried all of their solutions and I’m still stomped.
Joette
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
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.
J M Landers
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.
Muhammad Qamar40391
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.
John Malto
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!
Leslie limardo
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.
Fran
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).
Ahmed
thank you for the great help, i got mine up by replacing localhost with 127.0.0.1
Kate
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.
Sheriph
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
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.
Destiny Alabi
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.
Sam
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.
Robin Robin
The same happened with my site. Very strange!
Aaditya Koesis Sharma
Nice article. I want to know about the AMP errors and how to fix them ?
Bongani Ngcobo
This was helpful, Thank you very much. I always rely on WP Beginner when struggling.
sreekan th reddy
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
Martin L.
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)
imparthi
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.
jhaejhae jhaens
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!
Tanya
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
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
Mannu
Some folks suggested that they fixed their problem by replacing localhost with the IP.
It worked for me….
Any logical explanation for this…?
Nick
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.
Andrew
Thank you for your article, it was very informative and helpful in getting my issue resolved.
Ravi
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.
Amanda
What does it mean if testconnection.php is just a blank white page?
Mike Crisp
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
JP Hoey
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
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.
Adam Coalbow
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.
Ted Richards
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!