sql >> Database >  >> RDS >> Mysql

De beste manieren om corrupte InnoDB-tabel in MySQL te repareren

Samenvatting:  In dit bericht bespreken we enkele van de beste manieren om een ​​corrupte InnoDB-tabel in MySQL te repareren, die beschadigd kan raken door hardwarestoringen, een MySQL Server-crash en andere redenen. Deze manieren omvatten een stapsgewijze procedure om de beschadigde InnoDB-tabel handmatig of met behulp van MySQL-reparatiesoftware te repareren.

Vanaf MySQL 5.5-versie wordt InnoDB gebruikt als de standaard opslagengine voor alle nieuwe tabellen in een MySQL-database. Het mooie van InnoDB is dat het crashherstel ondersteunt. Het kan dus niet gemakkelijk beschadigd raken, maar als dat het geval is, kan het gebeuren door een MySQL Server-crash na een herstart, hardwarefout of bugs in het onderliggende platform, enz.

Wanneer een InnoDB-tabel beschadigd raakt, worden de gegevens erin onleesbaar en ontoegankelijk. En een poging om te lezen van een beschadigde tabel kan ervoor zorgen dat de MySQL-server crasht.

Hoe een corrupte InnoDB-tabel in MySQL te repareren?

Opmerking: Voordat u probeert de beschadigde InnoDB-tabel te herstellen, moet u eerst een back-up van uw MySQL-databasebestanden maken.

Hieronder volgen de manieren waarop u corrupte InnoDB-databasetabel kunt repareren

1. Beschadigde InnoDB-tabel handmatig repareren

U hoeft InnoDB-tabellen zelden te repareren, omdat de opslagengine helpt bij het uitvoeren van crashherstel dat de meeste problemen kan oplossen zodra de server opnieuw is opgestart. Er kan zich echter een situatie voordoen waarin u een beschadigde tabel handmatig opnieuw moet opbouwen of repareren. Zo kunt u het doen:

Stap 1:Start de MySQL-service opnieuw

Start de MySQL-service opnieuw om te controleren of u toegang hebt tot de server door het volgende uit te voeren:

  1. Open het venster Uitvoeren door op ‘Windows+R’ . te klikken sleutels bij elkaar.
  2. Typ msc en druk op Enter .
  3. Van de Services venster, zoek naar MySQL Service en klik er met de rechtermuisknop op en klik vervolgens op opnieuw opstarten .

Als de server toegankelijk is, gaat u verder met stap 3. Maar als deze niet start of blijft crashen, gebruikt u de optie innodb_force_recovery die in de volgende stap wordt uitgelegd.

Stap 2:InnoDB-herstel forceren

Schakel de innodb_force_recovery . in optie in MySQL my.cnf configuratiebestand om weer toegang te krijgen tot de MySQL-database en de corrupte tabel. Volg hiervoor deze stappen:

  • Open mijn.cnf-bestand en voeg de volgende regel code toe in de sectie [mysqld]:
[mysqld]
Innodb_force_recovery=1

  • Sla het configuratiebestand op en sluit het.
  • Probeer de MySQL-service opnieuw te starten.

Stap 3:laat de corrupte tabel vallen

Zodra u toegang hebt tot de corrupte tabel, dumpt u de tabelgegevens naar een nieuw bestand met behulp van de volgende mysqldump-opdracht:

mysqldump –u user –p db_name table_name > single_dbtable_dump.sql

Opmerking: Voeg de tabelnaam toe, gescheiden door witruimte in de bovenstaande opdracht om meerdere tabellen te dumpen.

Laat nu de corrupte tabel uit de database vallen:

mysql –u user –p –execute=”DROP TABLE db_name.table_name”


Stap 4:herstel de tabel

Gebruik het nieuw gemaakte dumpbestand om de tabel te herstellen vanuit het dumpbestand (d.w.z. single_dbtable_dump):

mysql –u user –p < single_dbtable_dump.sql

Stap 5:Start MySQL opnieuw op in de normale modus

Wanneer de beschadigde tabel is gerepareerd, stopt u de MySQL-service en schakelt u de InnoDB-herstelmodus uit door de volgende regel in de [mysqld]-sectie in te voeren:

#innodb_force_recovery=...

Start nu de MySQL-service opnieuw in de normale modus.

Opmerking: Als je de optie innodb_force_recovery niet hebt gebruikt, stop dan en herstart de server in de normale modus.

2. Corrupte InnoDB-tabel repareren met behulp van MySQL-reparatiesoftware

Het gebruik van een 'innodb_force_recovery'-waarde groter dan 4 om weer toegang te krijgen tot de database kan leiden tot gegevensbeschadiging. In gevallen van ernstige corruptie is het mogelijk dat u uw MySQL-server niet opnieuw kunt opstarten. U kunt deze beperkingen van het handmatig repareren van de corrupte tabel van de MySQL-database omzeilen door gespecialiseerde MySQL-reparatiesoftware te gebruiken. zoals Stellar Repair voor MySQL.

De software kan InnoDB-tabellen van de MySQL-database repareren en herstellen terwijl de gegevens intact blijven. Het helpt ook bij het herstellen van tabeleigenschappen, sleutels, relatiebeperkingen, enz.

Dit hulpprogramma voor het herstellen van MySQL-databases helpt bij het repareren van zowel InnoDB- als MyISAM-tabellen die zijn gemaakt op Windows- en Linux-besturingssystemen.

Stappen om corrupte InnoDB-tabel te repareren met behulp van de software zijn als volgt:

  1. Gratis downloaden, installeren en uitvoeren van Stellar Repair for MySQL
  2. Vanuit de Gegevensmap selecteren dialoogvenster, selecteer de MySQL-versie die u gebruikt en klik vervolgens op OK .
  3. Van de Database selecteren selecteer de database die u wilt repareren en klik vervolgens op Repareren .
  4. Een voorbeeld van de gerepareerde database, tabel en andere herstelbare componenten wordt weergegeven in het softwarevoorbeeldvenster.
  5. Selecteer de tabel(len) die u wilt herstellen en klik vervolgens op Opslaan in het menu Bestand.
  6. Van de database opslaan kiest u MySQL onder Opslaan als en voer de vereiste gegevens in om verbinding te maken met server. Klik op Opslaan .

U kunt het gerepareerde databasebestand vinden in een nieuwe map op dezelfde locatie waar uw oorspronkelijke database is opgeslagen.

U kunt het gerepareerde databasebestand vinden in een nieuwe map op dezelfde locatie waar uw oorspronkelijke database is opgeslagen.

Conclusie

Corruptie in de InnoDB-tabel kan de gegevens erin onleesbaar maken en als er niet op tijd mee wordt omgegaan, kan dit zelfs leiden tot een servercrash en ongeplande downtime. U kunt de corrupte InnoDB-tabel repareren door de handmatige stapsgewijze procedure te volgen. Het handmatige proces om InnoDB-tabellen te repareren kan echter leiden tot gegevensverlies en levert mogelijk niet het verwachte resultaat op.

Door echter een MySQL-databasereparatietool te gebruiken, zoals Stellar Repair for MySQL, kunt u tabellen in de InnoDB-opslagengine repareren en deze in de oorspronkelijke functionele staat herstellen. Dit hulpprogramma voor bestandsherstel helpt bij het repareren van de MySQL-database die is gemaakt op zowel Windows als Linux OS. Het kan niet alleen InnoDB-tabellen repareren, maar kan ook corruptie in MyISAM-tabellen van de MySQL-database herstellen.


  1. Verbinding maken met Teradata in IRI Workbench

  2. mysql-fout 1364 Veld heeft geen standaardwaarden

  3. Booleaans veld in Oracle

  4. Microsoft Access-gegevens gebruiken in Wolfram Mathematica