In this article, we will show you how to fix the error establishing a
database connection in WordPress by compiling a list of solutions all in
one place.
Note: Before you make any database changes, make sure you have sufficient backups.
You are getting this error because WordPress is unable to establish a
database connection. Now the reason why WordPress is unable to establish
a database connection can vary. It could be that your database login
credentials are wrong or have been changed. It could be that your
database server is unresponsive. It could be that your database has been
corrupted. In my experience, majority of the times this error happens
because of some sort of server error however there could be other
factors as well. Lets take a look at how to go about troubleshooting
this problem.
First thing you should do is to make sure that you are getting the
same error on both the front-end of the site, and the back-end of the
site (wp-admin). If the error message is the same on both pages “Error
establishing a database connection”, then proceed onto the next step. 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:
| 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
Remember, the user does not need to be logged in to access this
functionality when this define is set. This is because its main intent
is to repair a corrupted database, Users can often not login when the
database is corrupt. So once you are done repairing and optimizing your
database, make sure to remove this from your wp-config.php.
If this repair did not fix the problem, or you are having trouble
running the repair then continue reading this article as you might find
another solution to work.
Checking the WP-Config file
wp-config.php is probably the single most important file in your entire WordPress
installation. This is where you specify the details for WordPress to
connect your database. If you changed your root password, or the
database user password, then you will need to change this file as well.
First thing you should always check is if everything in your
wp-config.php file is the same.
define(
'DB_NAME'
,
'database-name'
);
| define( 'DB_USER' , 'database-username' ); |
| define( 'DB_PASSWORD' , 'database-password' ); |
| define( 'DB_HOST' , 'localhost' );
|
Remember your DB_Host value might not always be localhost. Depending on the host, it will be different.
If everything in this file is correct (make sure you check for
typos), then it is fair to say that there is something wrong on the
server end.
Check your Web Host (MySQL Server)
Often you will notice this Error establishing database connection
when your site gets swarmed with a lot of traffic. Basically, your host
server just cannot handle the load (specially when you are on shared
hosting). Your site will get really slow and for some users even output
the error. So the best thing you should do is get on the phone or
livechat with your hosting provider and ask them if your MySQL server is
responsive.
For those users who want to test if MySQL server is running yourself,
you can do a few things. Test other sites on the same server to see if
they are having the issue. If they are also getting the same error, then
most definitely there is something wrong with your MySQL server. If you
do not have any other site on this same hosting account simply go to
your cPanel 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 = mysql_connect( 'localhost' , 'root' , 'password' ); |
| die ( 'Could not connect: ' . mysql_error()); |
| echo 'Connected successfully' ; |
Make sure to replace the username and password. If the 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).
If you cannot connect to the database by going to phpMyAdmin, then
you know it is something with your server. It does not necessarily means
that your MySQL server is down. It could mean that your user does not
have sufficient permission.
In one scenario, MySQL server was running. All other sites on the servers were working
fine except for wordpress website. When we tried going to our phpMyAdmin, we
ended up getting the error:
#1045 – Access denied for user ‘foo’@'%’ (using password: YES)
if you get this access denied error in either connecting to your
phpMyAdmin or through testconnection.php results, then you should
contact your host right away to get them to fix it or just try to delete the mysql database username and recreate it.
No comments:
Post a Comment