Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to intentionally crash MySQL table?

Tags:

mysql

the goal is simple, but rather unusual. I wrote a database auto-repair script (as one of the tables keeps crashing from time to time, probably due to very large amounts being inserted and deleted constantly), and I want to test it. The problem is, that I need to crash a table on purpose, and I have no idea how. Any suggestions?

like image 220
cypher Avatar asked Feb 28 '11 09:02

cypher


People also ask

What can cause MySQL to crash?

The most common cause of crashes in MySQL is that it stopped or failed to start due to insufficient memory. To check this, you will need to review the MySQL error log after a crash. First, attempt to start the MySQL server by typing: sudo systemctl start mysql.


2 Answers

In MyIsam, run OPTIMIZE TABLE and kill it while it runs. The table will be marked as crashed.

like image 177
Galz Avatar answered Sep 20 '22 02:09

Galz


You can certainly make a MyISAM table look crashed by truncating the .MYI file to 4k (Assuming it was bigger than 4k). Then do a FLUSH TABLE, followed by a query which needs to use an index.

If the tables are crashing spontaneously, then either

  • There is a bug in the server OR
  • Something bad is happening - either someone kill -9 the server, it crashes, the power fails, or someone is modifying the MyISAM files

MyISAM tables should not crash spontaneously, but you can expect them to crash following an unclean shutdown. Unclean shutdowns should not happen very often, if they are, it is an operational problem. Ask your operations engineers what's going on. It is normally clear what's happened from reviewing the mysql server error log.

like image 38
MarkR Avatar answered Sep 21 '22 02:09

MarkR