Earlier this week one website was not responding and showing an error that the connection to the database was not possible. Such an error is usually a sign, that the credentials are invalid. But no changes have been made to either the credentials or the configuration file. After activating the WP_DEBUG mode I found out that the database was corrupt.
Repairing the database with the WP-CLI
My first approach was using the WP-CLI. There you have an option to optimize the tables, which can also sometimes repair errors:
wp db optimize
This command is usually been used when large amounts of rows where deleted but the table size was not reduced. But it will not always also fix issues with the tables. Fortunately there is another command for this task:
wp db repair
When a table was repaired, you will probably find a line like this in the output of the command:
warning : Number of rows changed from 378 to 381
status : OK
After running the command, your WordPress website will hopefully be working again.
Repairing the database in the browser
For those of you who don’t have access to the server through SSH and unable to use the WP-CLI, there is an alternative. First you have to add this line to your
define( 'WP_ALLOW_REPAIR', true );
If you databases is broken and you try to access your backend, you should find a link to the repair page. If not, just navigat to the
/wp-admin/maint/repair.php path. Here you should find this page:
All you have to do here is clicking the “Repair Database” button. You can also run the database optimization from here. The next page will show you the results of the repair process. If it was successful, you can remove the line from your
wp-config.php file and login to your dashboard as usual.
It wasn’t the first time a database of a WordPress installation was corrupt, but I didn’t knew that there is a UI to repair the database. If you still have access to the
wp-config.php page, repairing the database should be as easy as the click on a button.