Gendan MySQL-tabeller efter sletning af ibdata1, ib_logfile0 og ib_logfile1 - Trin-for-trin guide

Hvordan kan MySQL fås til at se og indlæse tabellerne igen efter sletning af filerne ibdata1, ib_logfile0 og ib_logfile1?

Hvis du har slettet filerne ibdata1, ib_logfile0 og ib_logfile1 i MySQL, kan du forsøge at løse problemet ved at stoppe MySQL-tjenesten, tage en sikkerhedskopi, fjerne de beskadigede filer, konfigurere MySQL til at bruge separate tablespaces, starte tjenesten igen, eksportere og importere databaserne, fjerne recovery mode og kontrollere tabellerne.

Hvordan kan MySQL fås til at se og indlæse tabellerne igen efter sletning af filerne ibdata1, ib_logfile0 og ib_logfile1?

Hvis du har slettet filerne ibdata1, ib_logfile0 og ib_logfile1 i MySQL, kan det føre til tab af data og problemer med at få MySQL til at genkende og indlæse tabellerne igen. Her er nogle trin, du kan følge for at forsøge at løse problemet:

1. Stop MySQL-tjenesten

Før du foretager nogen ændringer, skal du stoppe MySQL-tjenesten for at undgå yderligere skader:

sudo systemctl stop mysql

2. Sikkerhedskopier dine data

Det er vigtigt at tage en sikkerhedskopi af dine nuværende datafiler, hvis de stadig er tilgængelige:

sudo cp -r /var/lib/mysql /var/lib/mysql_backup

3. Fjern de beskadigede filer

Slet de beskadigede InnoDB-filer, hvis de stadig er til stede:

sudo rm /var/lib/mysql/ibdata1 /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile1

4. Konfigurer MySQL til at bruge separate tablespaces

Rediger MySQL-konfigurationsfilen (my.cnf eller my.ini) for at bruge separate tablespaces for hver tabel:

[mysqld]
innodb_file_per_table=1
innodb_force_recovery=1

5. Start MySQL-tjenesten igen

Start MySQL-tjenesten igen:

sudo systemctl start mysql

6. Eksporter og importer databaserne

Hvis MySQL starter korrekt, skal du eksportere dine databaser og derefter importere dem igen:

mysqldump -u root -p --all-databases > all_databases.sql
mysql -u root -p < all_databases.sql

7. Fjern recovery mode

Efter at have eksporteret og importeret databaserne, skal du fjerne innodb_force_recovery fra MySQL-konfigurationsfilen og genstarte tjenesten:

[mysqld]
innodb_file_per_table=1
sudo systemctl restart mysql

8. Kontroller tabellerne

Kontroller, om dine tabeller nu er synlige og fungerer korrekt:

mysql -u root -p
SHOW TABLES;

Bemærk, at disse trin muligvis ikke altid gendanner dine data fuldstændigt, især hvis der er sket alvorlig korruption. Det er altid en god praksis at tage regelmæssige sikkerhedskopier for at undgå datatab.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker