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.
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.
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.
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.
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.
Below that you will find the database users and links to change the 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
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.
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 from Codeable that can help you fix this issue for reasonable rates. The best part is that these developers are highly-vetted by Codeable team, 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.
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.
First I would like to say thanks for this guide!
I am having an issue “Error establishing a database connection“ I have checked the wp-config.php and all the database information is correct. I wanted to try step 4 in this guide but I don’t really understand how. I logged in to phpMyAdmin, but not sure what the next step is. Do you have a video for that? I am not a developer just a new WP beginner.
You would want to go to your hosting provider’s dashboard or reach out to your hosting provider and they should be able to assist.
Thanks for this wonderful article. it has really helped me
Glad our guide was helpful
I almost have given up after having one issue after the other, till i read this. I had this feeling that “this is it” this is the solution I have been looking for. tried it and it worked perfectly, thanks a lot.
Glad our guide was helpful
In my case, as I use digital ocean, I had to restart the DROPLET
Thanks for sharing what worked for you
I’m getting this error when entered the URL of my site:
There has been a critical error on your website.
For that issue, you would want to take a look at our article below:
https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-wordpress-white-screen-of-death/
Thank you very much This Article really helpful
Glad you found our guide helpful
running out of space has done this to me a few times!
Thanks for sharing that should someone else run into this issue
I am getting this error
Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /home/f5853789/public_html/wp-includes/wp-db.php on line 1635
Connection refused
what do I do
That is a different error, you would want to reach out to your hosting provider for assistance with that specific error.
I am a beginner to WordPress, and I am using MAMP to install WordPress but I’m still getting this error. My credentials are correct, and none of the steps shown above appeared to work. The database is repaired too. I don’t know what to do.
Following our guide on setting up your site on MAMP below, you may want to ensure you added the correct database prefix.
https://www.wpbeginner.com/wp-tutorials/how-to-install-wordpress-locally-on-mac-using-mamp/
Hi, I have just moved my WordPress site to a new hosting provider via ftp when this error popped up. Is there anything I’m to update after a migration? Thanks
For moving to a new host, you would want to take a look at our article below:
https://www.wpbeginner.com/wp-tutorials/how-to-move-wordpress-to-a-new-host-or-server-with-no-downtime/
Adding this line “””define(‘WP_ALLOW_REPAIR’, true);”” helped me get my site back after 14 hours of being down. Thought it was my hosts problem. Thanks for the info.
You’re welcome, glad the recommendation was helpful
Thanks! Step 1 worked for me.
You’re welcome, glad our guide was able to help
How to increase the connection limit in the MySQL database? My website is intermittently giving database error as it is exceeding the max connection limit allocated on the server.
You would need to reach out to your hosting provider for changing that and they would be able to assist.
I use google cloud as hosting and encounter this problem. What should I do?
You should still be able to follow the steps in this article
Thank you so much for this! The solution for me was fixing url in sql. Thank you for the code!
You’re welcome, glad our guide could be helpful
I have installed a wordpress . i also make post but sometime it shows me that ”please install wordpress”. Why it showing me that?
Thank you.
There are a few possible reasons, you may want to reach out to your hosting provider to ensure there are no hiccups on their end.
my website is hosted on aws and i accessed the MYSQL folder via filezila but i couldn’t find the file that contains database username , password and hostname. is there any specific name of that file?
The file with that information would be your wp-config.php file
Very helpful thank you.
You’re welcome
Thanks. Adding the repair code to my wp config file worked. I appreciate the article. It was straight forward and easy to follow.
You’re welcome, glad our recommendation was helpful
your article was helpful i had changed my database password so it wasnt connecting to my blog properly but all thanks to your article the issue has been fixed
Glad our recommendations could help
Thank you for sharing such a nice blog.
It will help the beginners of WordPress who are facing the problem regarding Error Establishing in the database connection. Apart from that, It gives a step by step solution so, every reader can easily solve the problem.
You’re welcome, glad our articles can be helpful
Thanks for such amazing information. I really liked your article.
You’re welcome, glad you liked our article
I got this error after forcefully shutting my computer. After trying all these suggested methods and failing, I rebooted my computer and the database error was fixed.
You should give it a try too if things go south.
Thanks for sharing the solution that worked for you
Awesome! Very easy to follow and took minutes to solve.
Glad our guide could be helpful
Yet again you guys come to my rescue. Fixed in a couple of minutes. Well done.
Glad our guide could help
Thank you so much for sharing this tutorial. Actually, had installed WordPress, it shows me “Error Establishing A Database Connection” and I don’t know what to do. Then I have searched on Google and I found your this article and really it is
very helpful for me and also many people who have no idea about this things. and my site were facing many other problems and only one of them has been solved. Thank for article.
Glad our article could help
I can’t back up my site or do any of what you suggest, because I cannot get into the administrative section of my blog. I can view it, as a viewer, but I have no access to anything more. I also cannot find anyway to contact people from wordpress! Help!?!!
You should be able to create a manual backup using the method here: https://www.wpbeginner.com/beginners-guide/how-to-make-a-wordpress-database-backup-manually/
If you reach out to your hosting provider they should be able to assist with getting you access back to your site
Guys,
I have fixed it now for my website
It was due to insufficient PHP memory
I have updated my php.ini to increase the PHP memory
Thanks for sharing the solution that worked for you
Hi WAQAS,
can you please advice how you updated my php.ini to increase the PHP memory. My Site is down with the error “Error Establishing A Database Connection” and i suspect it is also to do with memory.
We have a guide you can follow here: https://www.wpbeginner.com/wp-tutorials/fix-wordpress-memory-exhausted-error-increase-php-memory/
I’m on BlueHost and just upgraded to WP 5.2 and got the dreaded error message:
“Your PHP installation appears to be missing the MySQL extension which is required by WordPress.”
I tried with PHP 5.6, 7.0 & 7.1 – all give the same response. Any ideas what I can try? My site is completely blocked by the error.
If you reach out to BlueHost they should be able to resolve that issue for you
hello I need your help please help me my website is showing Error establishing a database connection
how can I solve I don’t know please help me
You would want to follow the troubleshooting steps in this article for that error.
I had this very same issue while using Xampp. After using the “testconection.php” file and through some further trouble shooting, I discovered that my user account was set to connect to “Any host” and by changing it to “Localhost” the problem was solved. I suspect this error came about when I updated Xampp and recreated the same named user.
Thanks for sharing what worked for you
For my case the correct response was by Daniel.
…I discovered that my user account was set to connect to “Any host” and by changing it to “Localhost” the problem was solved.
Thanks so much!
i am getting this error on my localhost
The methods in this article should be able to help with localhost sites as well as hosted sites.
Thanks for the article. Hopefully it will help.
You’re welcome
After succeed the “Check your Web Host (MySQL Server)” test I change the host from 127.0.01 to localhost on the config.php file.
That worked for me.
Thanks for sharing your solution
hi, it is happening to my WordPress site only sometimes and when I reload the page site starts working again please suggest me a solution, for now, I am using Cloudflare as cdn and wp rocket for caching plugin, the theme is newspaper premium.
If it is intermittent like that, you would want to reach out to your hosting provider and let them know and they should be able to assist.
This solution helped me a lot. Thanks so much.
You’re welcome
Same exact error i got “Error establishing a database connection” but not all of the sollution you mentíon helped me.
For me the MySql services was disabled: I went to services and start the MySQL to automatic. The other thing was the ” log on ” to user was administrator and changed it to the account i created.
Now my wordpress site is working again.
Thanks for sharing your solution to this issue for others
I have a weird situation is, that the error establishing a database connection is only happening to one post in my blog while other posts are not showing this issue.
I am receiving this error one time on 3 and not always! I do not understand why and how to solve the problem
You may want to try reaching out to your hosting provider to see if their error logs have information that can help find the root of the issue.
thanks so much, worked great, really appreciate how fast and to the point the video was, instead of a 7-10min extended one, boom, stright to the point!
I fixed it by adding “:3306” to the mysql adress “localhost” in wp-config
Thanks so much for this post. Saved me lots of time troubleshooting. I had changed my database password after a web hack and forgot to change wp-config file. Your instructions are spot on.
Dude, you have just saved me TONS of nerves! Thank you SO MUCH. Best wishes and God bless!
I fixed it by deleting the MySql database and making a new by importing the backup. I did not need a fresh instance of WordPress.
Same here! After hours of debugging, reinstalling MySQL and WP, deleting the wordpress database was the solution. Thanks Parker!
I’m not a developer or have any background in file managing and I could follow your instructions easily. Either I’m a genius or you’re awesome! Or maybe both!
Thanks for the article.
I had this error while setting up a local instance of WordPress running on Wamp server on windows.
*For me, it got solved when I changed the blank password of the localhost from phpMyAdmin panel, * the password was blank so I suspect that’s the reason, or maybe changing the password updated some necessary files automatically.
Just wanted to share this ^-^
Dear sirs,
I’m a beginner making a big mistake of using all-in-one migration to export my website to a whole package(a “.wpress” file, containing old database information inside) unless using separated database files and then restored it on my new host.
After that my website display”Error establishing a database connection”.
I have tried checking the config.php, but the database name is correct to my new host.
I now understand that’ s a terrible way to migrate my web, however, I don’t have any backup. Is there any method can help save this problem?
Hi Frenda,
Check your host, database name, and database password. These are the most likely culprits.
Thank you very much for the guide,
I follow step by step, and now my web is better.
The tutorial is very useful
Thanks very much for the article. I’m new to WordPress, and this error was pretty disconcerting. I got the error after a simple page edit today – not even fiddling with back end files. Your advice on editing the wp config file fixed it straight away. Thanks again!
Thanks immensely for the article. Although my problem wasn’t identical to the problems given, changing the hosts file managed to get me pointing at the new (unpropogated) version of the web site and replacing localhost with the ip address in wp-config took care of all the problems with pointing to the active version of the site. Now the new site is fully tested and I can shift servers safely. Well done!