#### 16.2.4.1 Corrupted MyISAM Tables

 Even though the `MyISAM` table format is very reliable (all changes to a table made by an SQL statement are written before the statement returns), you can still get corrupted tables if any of the following events occur:

* The [**mysqld**](mysqld.html) process is killed in the middle of a write.

* An unexpected computer shutdown occurs (for example, the computer is turned off).

* Hardware failures.

* You are using an external program (such as [**myisamchk**](myisamchk.html)) to modify a table that is being modified by the server at the same time.

* A software bug in the MySQL or `MyISAM` code.

 Typical symptoms of a corrupt table are:

* You get the following error while selecting data from the table:

  ```
  Incorrect key file for table: '...'. Try to repair it
  ```

* Queries don't find rows in the table or return incomplete results.

 You can check the health of a `MyISAM` table using the [`CHECK TABLE`](check-table.html) statement, and repair a corrupted `MyISAM` table with [`REPAIR TABLE`](repair-table.html). When [**mysqld**](mysqld.html) is not running, you can also check or repair a table with the [**myisamchk**](myisamchk.html) command. See [Section 13.7.3.2, “CHECK TABLE Statement”](check-table.html), [Section 13.7.3.5, “REPAIR TABLE Statement”](repair-table.html), and [Section 4.6.4, “myisamchk — MyISAM Table-Maintenance Utility”](myisamchk.html).

 If your tables become corrupted frequently, you should try to determine why this is happening. The most important thing to know is whether the table became corrupted as a result of an unexpected server exit. You can verify this easily by looking for a recent `restarted mysqld` message in the error log. If there is such a message, it is likely that table corruption is a result of the server dying. Otherwise, corruption may have occurred during normal operation. This is a bug. You should try to create a reproducible test case that demonstrates the problem. See [Section B.3.3.3, “What to Do If MySQL Keeps Crashing”](crashing.html), and [Section 5.9, “Debugging MySQL”](debugging-mysql.html).

