MySQL 1240: Partition is corrupted.

  1. Immediate Backup: Before attempting any fix, take an immediate backup of the database, if possible, to prevent data loss. Use the command:


mysqldump -u yourusername -p yourdatabasename > backupname.sql

  1. Check and Repair the Table: Use the `CHECK TABLE` command to verify the integrity of the table, followed by the `REPAIR TABLE` command if issues are found. Replace `yourtablename` with the name of your corrupted table.


CHECK TABLE yourtablename;
REPAIR TABLE your
tablename;

  1. MySQL Error Log: Review the MySQL error log for any messages related to the corruption. The location of the log can be found by executing:


SHOW VARIABLES LIKE 'log_error';
Then, view the log file for specific error entries related to the corruption.

  1. File System Check: Consider running a file system check if the table's corruption might be due to underlying disk issues. Use the command (for Linux systems):


fsck /dev/sdX
Note: Replace `/dev/sdX` with your actual device. This action requires system administrator privileges and should be done during a maintenance window as it requires unmounting the filesystem.

  1. InnoDB Recovery Mode: If the corrupted table is an InnoDB table, adjusting the InnoDB recovery mode might help in starting the MySQL server if it's failing to start. Edit the `my.cnf` or `my.ini` file, adding the following under the `[mysqld]` section:


innodbforcerecovery = 1
Start with `1` and increment up to `6`, but be cautious: higher levels prevent changes to the database. Only use this to dump tables for backup. After adjusting, try restarting the MySQL service and dump your data.

  1. Restore from Backup: If you have a recent backup that predates the corruption, consider restoring the table or database from this backup.



  1. Use of External Tools: For severe corruption, external tools like `mysqlcheck` or third-party recovery tools might be necessary. To run a check on all tables and repair them with `mysqlcheck`, use:


mysqlcheck -u your_username -p --auto-repair --check --all-databases

Never debug

MySQL

manually again

Let Dr. Droid create custom investigation plans for your infrastructure.

Start Free POC (15-min setup) →
Automate Debugging for
MySQL
See how Dr. Droid creates investigation plans for your infrastructure.

MORE ISSUES

Made with ❤️ in Bangalore & San Francisco 🏢

Doctor Droid