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.
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.
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:
$link= mysqli_connect('localhost', 'username', 'password');
die('Could not connect: '. mysqli_error());
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.