How can I repair corrupt MySQL tables?

Every so often, MySQL tables have a way of corrupting themselves. MySQL offers a quick and painless method of repairing those tables.

Login to your server via SSH and change directories to the database that is having problems.

cd /usr/local/mysql/var/[DBNAME]/

You will need to replace [DBNAME] with the actual name of your database.

Stop the MySQL server:

/etc/rc.d/init.d/mysql stop

NOTE: Accounts created before July 7th, 2003 will want to use:

/etc/rc.d/init.d/mysqld stop



To check the tables:

myisamchk *.MYI



To repair tables:

myisamchk -r *.MYI



Restart MySQL:

/etc/rc.d/init.d/mysql start



NOTE: Accounts created before July 7th, 2003 will want to use:

/etc/rc.d/init.d/mysqld start



Alternatively, if you do not want to shut down MySQL, you can use mysqlcheck.

mysqlcheck [DBNAME]



To repair the database tables:

mysqlcheck -r [DBNAME]



You will need to replace [DBNAME] with the actual name of your database.

You can find additional documentation here:
http://dev.mysql.com/doc/mysql/en/Table_maintenance.html
http://dev.mysql.com/doc/mysql/en/Using_mysqlcheck.html} else {