We use cookies on this website. By using this site, you agree that we may store and access cookies on your device Read More Got it!
MySQL Repair 5 minute read

How to Fix MySQL Server Database Corruption?

Charanjeet Kaur
Written By
Charanjeet Kaur
Kuljeet Singh
Approved By
Kuljeet Singh
stellar calander
Updated on
January 31st, 2023

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.

Free Download for Windows Free Download for Windows

Contents

  • What Causes Database Corruption in MySQL Server?
  • What to do When MySQL Database Gets Corrupt?
  • End Note

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:

  1. Stop the MySQL server.
  2. 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.

Read this: How to Repair MySQL Database Table Without Downtime?

If database corruption is severe, you will likely face trouble while starting your MySQL Server. In such a case, forcing InnoDB recovery may help start up MySQL.

To use ‘innodb_force_recovery’ option, follow these steps:

  1. Open MySQL configuration file and add the following line of code to [mysqld] section before restarting the server:

NOTE: The innodb_force_recovery is set to ‘0’ by default. However, to start InnoDB and dump MySQL tables, you will need to set the value to ‘1’ and increase the value incrementally (from 1 to 6).

But, keep in mind, setting the value of innodb_force_recovery option to 4 or greater increases the chances of data corruption.

[mysqld]
innodb_force_recovery=1
  • Save and close the MySQL configuration file, and then try restarting the MySQL service again.
  • If you’re able to start MySQL, dump all of your MySQL databases to a single file by using the following command:
mysqldump -u [user] –p[password] --all-databases > all_databases.sql

NOTE: The dump file in this example is called all_databases.sql. But, you can change it to whatever you want.

  • Following this, disable InnoDB recovery mode. To do so, comment out the following line in the [mysqld] section:
#innodb_force_recovery=...
  • Save the changes to the configuration file, and then start the MySQL server.
  • Restore the databases from the dump (backup file) that you have created in step 3:
 mysql> source all_databases.sql

Read about: Best Ways to Repair InnoDB Table Corruption in MySQL.

Step 3 – Repair MyISAM Tables using myisamchk

Run the myisamchk command to repair MyISAM tables by following these steps:

NOTE: The myisamchk command does not work for the tables that use InnoDB engine.

  1. Stop the MySQL server.
  2. Use the following command to check corrupt tables:
myisamchk TABLE
  • To check all of the tables in a corrupt database, type the following command:
myisamchk *.MYI
  • Try repairing a corrupt table by executing the following command:
myisamchk –recover TABLE
  • Start the MySQL server.

Refer to this link, for detailed information on ‘How to repair MyISAM table by using myisamchk?’

What if Nothing Works?

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

Prerequisites:

  • 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.

Free Download for Windows

Step 2: In Select Data Folder window, select the MySQL version you are using.

Select MySQL server version in Select Data Folder window
Figure 1- Select Data Folder Window

Step 3: The Select Database window is displayed. Select the database you want to repair.

Select databases to be repaired
Figure 2- Select Database Window

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.

Preview of repaired database
Figure 3 – Preview Window

Step 7: Click Save on File menu to save the repaired database.

Select file menu
Figure 4 – File Menu

Step 8: In Save Database window, choose MySQL file format, and then click Save.

Saving file saving options
Figure 5 – Save Database Window

Step 9: When the ‘Saving process completed‘ message appears, click OK.

Saving process completed message
Figure 6 – Save Complete Message Box

The repaired database will be saved in the selected location.

End Note

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.

About The Author

Charanjeet

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.

Best Selling Products

Stellar Data Recovery Professional for Windows

Stellar Data Recovery Professional for Windows

Stellar Data Recovery has the right Windows Recovery tool for all your data recovery

Read More
Stellar Data Recovery Professional for Mac

Stellar Data Recovery Professional for Mac

Stellar Data Recovery for Mac program performs safe..

 

Read More
Stellar Photo Recovery

Stellar Photo Recovery

A comprehensive photo recovery software to restore photos, music & video files

 

Read More
Stellar Repair for Video

Stellar Repair for Video

Powerful video repair tool for repairing corrupt or damaged MOV and other video files

 

Read More

Leave a comment Cancel reply

Your email address will not be published. Required fields are marked *

Image Captcha
Refresh Image Captcha

Enter Captcha Here :

Table of Contents    arrow

  1. What Causes Database Corruption in MySQL Server?
  2. What to do When MySQL Database Gets Corrupt?
  3. End Note

Categories

offer banner

Related Posts

related post
MySQL Repair

[Fixed] MySQL innodb_force_recovery is Not Working Properly

Stellar Author Charanjeet Kaur January 21, 2022 Read More
related post
MySQL Repair

How to Repair MySQL Database using phpMyAdmin?

Stellar Author Charanjeet Kaur November 11, 2021 Read More
related post
MySQL Repair

How to Repair MySQL Tables Using Mysqlcheck

Stellar Author Charanjeet Kaur July 17, 2021 Read More

Free Trial for 60 Days

Technology You Can Trust A Brand Present Across The Globe

  • tuv1
  • tuv2
  • Nist
  • hipa

Stellar Official Website

Stellar Data Recovery Inc.
48 Bridge Street Metuchen,
New Jersey 08840,
United States

ALSO AVAILABLE AT

ALSO AVAILABLE AT

About

  • About us
  • Career
  • ISMS Policy
  • Privacy Policy
  • Terms of Use
  • License Policy
  • Refund Policy
  • End User License Agreement

RESOURCES

  • Blog
  • Articles
  • Product Videos
  • Knowledge Base
  • Case Studies
  • Whitepapers
  • Software Catalog

NEWS & EVENTS

  • News
  • Events

PARTNERS

  • Affiliates
  • Resellers
  • Distributors

Useful Links

  • Contact Us
  • Support
  • Special Offers
  • Student Discounts
  • Awards & Reviews
  • Downloads
  • Store
  • Sitemap

Stellar & Stellar Data Recovery are Registered Trademarks of Stellar Information Technology Pvt. Ltd. © Copyright 2023 Stellar Information Technology Pvt. Ltd. All Trademarks Acknowledged.

Follow Us Facebook Twitter Linkedin Youtube

  • Notron
  • dcma