✦ Oplossingen · Database (MySQL/MariaDB)

MySQL: Table is marked as crashed and should be repaired

'Table … is marked as crashed and should be repaired' komt bij MyISAM- en Aria-tabellen na een harde stop of volle schijf. Zo herstel je de tabel veilig en voorkom je herhaling.

Waarom gebeurt dit?

Deze melding hoort bij tabellen met de opslag-engine MyISAM (of Aria in MariaDB). Die engines zijn niet bestand tegen een abrupte stop: valt de server uit, loopt de schijf vol of wordt het proces afgebroken tijdens een schrijfactie, dan wordt de tabel als beschadigd gemarkeerd.

InnoDB, de standaard-engine in moderne MySQL- en MariaDB-versies, herstelt zichzelf na een crash via zijn logbestanden. Daarom is het omzetten naar InnoDB de beste structurele oplossing.

Zo los je het op, stap voor stap

Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.

  1. Maak eerst een back-up

    Kopieer de database (of op zijn minst de tabel) voordat je herstelt.

    mysqldump -u root -p databasenaam > databasenaam-voor-herstel.sql
  2. Controleer en herstel de tabel

    Met SQL controleer en herstel je de tabel. Bij de meeste beschadigingen is REPAIR TABLE genoeg.

    CHECK TABLE wp_options;
    REPAIR TABLE wp_options;
  3. Of herstel alle tabellen via mysqlcheck

    Op de opdrachtregel kun je een hele database in één keer laten controleren en herstellen.

    mysqlcheck -u root -p --auto-repair --check databasenaam
  4. Controleer de vrije schijfruimte

    Was de schijf vol, maak dan eerst ruimte; anders gaat het direct weer mis.

    df -h
  5. Zet de tabel om naar InnoDB

    Na herstel en back-up kun je de tabel omzetten. Test dit eerst op een kopie; grote tabellen omzetten kost tijd en vergrendelt de tabel.

    ALTER TABLE wp_options ENGINE=InnoDB;

Lukt het niet? Wij helpen

Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.

Aanvraag

Hulp aanvragen

Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.

Veelgestelde vragen

Vragen over dit probleem

Werkt REPAIR TABLE ook voor InnoDB?

Nee. InnoDB herstelt zichzelf bij het opstarten. Is een InnoDB-tabel echt beschadigd, dan is herstel uit een back-up meestal de route.

Waarom crasht dezelfde tabel steeds?

Vaak door een volle schijf, een server die door geheugengebrek processen afbreekt, of harde herstarts. Zet de tabel om naar InnoDB en zoek de oorzaak van de stops.

Kan ik data kwijtraken bij herstel?

Bij zware beschadiging kan REPAIR rijen verliezen. Daarom eerst een back-up.