Summary: This blog will outline potential reasons behind MySQL Server Database Corruption issue and steps to fix the issue. These steps include backing up the database (db) before performing recovery operations, using ‘innodb_force_recovery’, etc. The blog will also explain how MySQL repair software can help when you are unable to repair and restore the database.
Database corruption in MySQL Server, if not handled properly or resolved in time, can lead to major downtime and data loss.
Unfortunately, you might not even notice that your MySQL server has turned corrupt, until the server accesses a corrupt table or the server is shutdown.
What Causes Database Corruption in MySQL Server?
Following are some of the common reasons behind MySQL corruption:
Failure of server hardware.
MySQL process gets killed in the middle of writing to the disk.
Third-party software to access the database crashes unexpectedly.
Users trying to move database files manually in MySQL data directory (or datadir).
Bugs in MySQL server software.
Besides these reasons, db corruption also depends on whether you’re using MyISAM or InnoDB storage engine. That’s because MyISAM tables are more susceptible to corruption.
What to do When MySQL Database Gets Corrupt?
Usually, when MySQL database corrupted, it is recommended that you restore it from the last known good backup copy. But if you don’t have the backup, performing recovery operations can help fix MySQL database corruption.
Even if backup is available, attempting recovery can be a better option as it takes less time in getting back the db online.
Troubleshooting Steps to Resolve MySQL Database Corruption
Try resolving database corruption by following steps in the sequence listed below:
NOTE: These steps will work only if the MySQL database server is running. But, if MySQL service stops running (has crashed) and you cannot log into the MySQL command-line client, the only option left is to restore the database from a good known backup. If there is no backup, using a specialized MySQL repair software may help.
Step 1 – Backup Your Database
Before attempting to repair the corrupt database, make sure to back up your database files first.
Although the db is already corrupt, backing it up will help minimize the risk of further damage, which may be caused due to a recovery operation.
To back up all of the db files, follow these steps:
Stop the MySQL server.
Create a backup copy of your datadir.
Step 2 – Bring Database Back in Recovery Mode
NOTE: If MySQL Server uses MyISAM as the default storage engine, skip to Step 3 to know the process of repairing the corrupt db.
If InnoDB is MySQL Server’s default storage engine, in some cases of database corruption, merely dumping, dropping and re-creating one or a few corrupt tables will work for you. For this, use the CHECK TABLE statement to check the tables that are corrupt.
If the troubleshooting steps fail to resolve the issue, use Stellar Repair for MySQL software to repair the corrupt database and restore all its objects. The software can repair MySQL database on Windows and Linux systems.
Some Reasons Why You Should Use Stellar Repair for MySQL Software
Repairs MySQL db tables that use InnoDB (.frm, .ibdata, .idb) and MyISAM (.frm, .myd, .myi) database engines.
Batch repairs multiple MySQL databases in a single process.
Recovers all database objects like keys, tables, table properties, data types, views, triggers.
Previews recoverable database objects.
Allows saving the repaired database in multiple file formats such as MySQL, CSV, HTML, and XLS.
Supports MySQL 8.x, 6.x, 5.x, 4.x, and 3.x.
Steps to Fix Corrupt MySQL Database with Stellar Repair for MySQL Software
The ‘ibdata’ file location should be exactly the same as that of MySQL database.
Make sure the destination drive has enough free space to store all the recovered MySQL databases.
MySQL must be installed on your system.
Step 1: Download, install and launch Stellar Repair for MySQL software.
Step 2: In Select Data Folder window, select the MySQL version you are using.
Step 3: The Select Database window is displayed. Select the database you want to repair.
Step 4: Click Repair to begin the repairing process.
Step 5: When Repair Complete dialog box appears, click OK.
Step 6: The software displays a preview of the repaired database and its recoverable components.
Step 7: Click Save on File menu to save the repaired database.
Step 8: In Save Database window, choose MySQL file format, and then click Save.
Step 9: When the ‘Saving process completed‘ message appears, click OK.
The repaired database will be saved in the selected location.
When it comes to resolving database corruption in MySQL server, executing the troubleshooting steps discussed in this post may help you fix the issue.
But, if you are not an expert at handling database corruption or have a large size db (with gigabytes or terabytes of data), you may fail to restore the corrupt db with repair and recovery options. Also, recovery options such as innodb_force_recovery set to a value of 4 or greater may result in data corruption.
A better alternative is to use a purpose-built MySQL repair software to repair a corrupt database easily, in the original format.
Charanjeet is a Technical Content Writer at Stellar®who specializes in writing about databases, e-mail recovery, and e-mail migration solutions. She loves researching and developing content that helps database administrators, organizations and novices to fix multiple problems related to MS SQL and MySQL databases and Microsoft Exchange.