MyISAM-tabellen zijn heel gemakkelijk te crashen. Er is header-info in elke tabel die bijhoudt hoeveel open bestandshandles een MyISAM-tabel heeft.
Als mysqld crasht, heeft elke MyISAM-tabel die open bestandshandles had, nooit de mogelijkheid gehad om het aantal bestandshandles te verlagen bij het sluiten van elke bestandshandle. Dus als een nieuwe bestandshandle een MyISAM-tabel (.MYD-bestand) opent en mysqld ontdekt dat er een mismatch is tussen het aantal bestandshandles dat volgens de MyISAM-tabel open is en het aantal bestandshandles dat de MyISAM-tabel daadwerkelijk heeft geopend, is de tabel gecrasht verklaard.
Er zijn vier (4) methoden om dit aan te pakken:
METHODE #1:Automatische MyISAM-reparatie instellen
Zie mijn bericht https://dba.stackexchange.com/a/15079/877 over hoe u dit instelt bij een MySQL-herstart (15 maart 2012)
METHODE #2:Gebruik InnoDB in plaats van MyISAM
InnoDB heeft crashherstel ingebouwd in de initialisatie van de Storage Engine. MijnISAM niet
METHODE #3:gebruik Aria in plaats van MyISAM
Aria is MariaDB's drop-in vervanger voor MyISAM. Het bevat crashherstelmechanismen voor individuele tabellen.
METHODE #4:-9 niet doden op mysqld
Als mysqld crasht, opzettelijk of onvrijwillig, zal header-info voor alle geopende MyISAM-tabellen ze in een gecrashte toestand brengen. Voorkom dat u mysqld handmatig moet doden.