MySQL table is marked as crashed and should be repaired error is encountered while using MySQL. This error generally takes place after a forced shutdown of the MySQL database or due to the crash of the entire server.
Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related MySQL queries.
In this context, we shall look into methods to repair MySQL.
How to troubleshoot mysqldump error 1194 table is marked as crashed error ?
Commonly, low disk space can be a reason for the error. In case we have low disk space, some of the tables in the database may rash.
Usually, this happens when we get space issues on the hard drive where the database is stored.
Though the error seems daunting, we can resolve it. MySQL can repair the crashed tables by itself.
Quite often, it is hard to identify the specific tables affected by the error.
Hence, before the repair, let us have a look at how to identify the corrupted MySQL tables.
How to Identify crashed MySQL tables ?
We can identify the corrupt tables through certain expected and observable errors in the queries.
For example:
- Can't find file tbl_name.MYI (Errcode: nnn).
- Unexpected end of file.
- Got error from table handler.
- Record file crash.
- Can't find the file, tablethatshouldbethere.MYI.
- tablethatwasworking.frm locks against change.
- Got error ### from table handler.
In addition, we can run perror to get more information about the error
How to Recover MySQL Crashed Tables ?
MySQL server provides its own tool, myisamchk to diagnose crashed tables:
# myisamchk -s /var/lib/mysql/*/*.MYI
This command will list the crashed MySQL tables, with a message:
MyISAM-table '/var/lib/mysql/dbname/table_name.MYI' is marked as crashed and should be repaired
In addition, the tool can help repair the damaged table. Generally, if we run the myisamchk command it should solve the problem.
However, if it doesn't, we try to stop the web service, so as to not generate new requests. we stop the MySQLd daemon itself and run:
# myisamchk -r --update-state /var/lib/mysql/dbname/table_name.MYI
The "–update-state" switch tells MySQL to mark the indicated table as "checked."
Once done, we restart the MySQLd and web service, and MySQL will repair the crashed table.
This will remove the error and restore the database.
How to Recover database by using backup ?
On the other hand, an alternative to deal with the error is to recover the database from a previous backup.
A solid backup strategy for the data is essential. When everything goes wrong, instead of searching for the methods to repair, we can look up to it.
So, we need to take regular backup of the database, install directory, and home directories by using database administration or any backup tool.