Mysql
 sql >> Database >  >> RDS >> Mysql

Metodi gratuiti per riparare il database MySQL danneggiato

Quando un database MySQL diventa corrotto, potresti chiederti perché il database è stato danneggiato in primo luogo. Questo post illustrerà le possibili ragioni alla base del danneggiamento del database prima di rispondere alla domanda:come riparare un database MySQL corrotto?

Ragioni alla base della corruzione del database MySQL

Un database MySQL può essere danneggiato a causa di uno di questi motivi:

  • Spegnimento improvviso del server
  • Difetto nell'hardware utilizzato per archiviare e recuperare dati come sottosistema del disco, controller del disco, driver, ecc.
  • Il processo "mysqld" viene interrotto mentre è in corso un aggiornamento in corso
  • Blocco software

Può essere difficile individuare la causa di un database danneggiato. Qualunque sia la causa, la preoccupazione che dovresti avere è come riparare il database MySQL corrotto.

Come riparare il database MySQL danneggiato?

La prima cosa che devi guardare è il messaggio di errore che ricevi. Di seguito sono riportati alcuni messaggi di errore che potresti incontrare quando il database MySQL viene danneggiato:

Errore 144: La tabella si è arrestata in modo anomalo e l'ultima riparazione non è riuscita

Errore 141: Chiave univoca duplicata o vincolo in scrittura o aggiornamento

Errore 136: Non c'è più spazio nel file di indice

Errore 134: Il record è stato già eliminato

Errore 126: Il file di indice è andato in crash/formato di file errato

Errore: Impossibile trovare il file "wtlicensemanager.dll"

Se vuoi eseguire la riparazione gratuitamente, hai due opzioni:

  1. Fallo manualmente.
  2. Fallo con l'aiuto del software utilizzando il periodo di prova.

Un software di ripristino del database può fare un lavoro migliore e più veloce nel riparare il database danneggiato.

Ecco un'applicazione software che puoi utilizzare per riparare il database MySQL danneggiato:

Questo strumento di riparazione del database MySQL ripara il database creato utilizzando i motori di database InnoDB e MyISAM di MySQL. È possibile scaricare la versione demo dello strumento di riparazione SQL per visualizzare in anteprima il database recuperabile prima di salvarlo.

Caratteristiche principali:

  • Può recuperare database MySQL su sistemi Windows e Linux.
  • Recupera i file InnoDB (.ibdata, .ibd e .frm) e i file MyISAM (myd, .myi e .frm)
  • Ripristina oggetti di database come tabelle, proprietà di tabelle, tipi di dati, viste, trigger, ecc.
  • Consente il ripristino selettivo dei componenti del database

Come riparare manualmente il database MySQL danneggiato?

Esistono due tipi di motori di archiviazione in MySQL:InnoDB e MyISAM. La tabella InnoDB contiene file FRM, IBDATA e IDB, mentre la tabella MyISAM contiene file FRM, MYD e MYI.

Prima di procedere

Ecco alcune cose che dovresti considerare prima di tentare il ripristino manuale:

  • Non riavviare il server

Quando si riavvia il server, il server può mettere il database danneggiato in modalità sospetta. Questo disattiverà il database. Può anche creare errori durante la connessione al database. Dovresti tentare il ripristino senza riavviare il server.

  • Utilizza la modalità Utente singolo

Assicurati di essere l'unico utente connesso al database. La modalità utente singolo ti offre il controllo completo, eliminando le interferenze di altri utenti.

  • Non aggiornare MySQL

Potresti pensare di aggiornare il database MySQL per riparare i file danneggiati. Ma questo non è il caso. L'aggiornamento può causare la perdita permanente dei dati.

  • Fai il backup del database MySQL danneggiato

È importante avere un backup del file danneggiato poiché potrebbero esserci errori che possono causare la perdita di dati. Non vi è alcuna garanzia che i passaggi manuali non influiscano sui file integri. Quindi è sicuro avere un backup prima di tentare il ripristino manuale.

Per eseguire il backup, utilizzare il seguente comando:

mysqldump db_name> database_name.sql

Basta inserire il nome del database al posto di database_name.

Se quanto sopra non funziona, prova quanto segue:

mysqldump –u[nome utente] –p[password] [nome_database]> [file_dump].sql 

C'è un altro modo per eseguire il backup del database:

servizio mysqld fermo

cp -r /var/lib/mysql /var/lib/mysql_bkp

Ora che abbiamo il backup, possiamo tentare di riparare il database MySQL corrotto.

Come recuperare manualmente il database MySQL?

Riparazione del database MyISAM

Se stai utilizzando il motore di archiviazione del database MyISAM per la tabella del database, puoi utilizzare i seguenti comandi per riparare la tabella:

Mysqlcheck

Se il tuo server MySQL è in esecuzione, esegui il seguente comando mysqlcheck per riparare la tua tabella:

mysqlcheck -r [nome_database]

Assicurati di sostituire "database_name" con il nome del tuo database.

Myisamchk

Se il server non è in esecuzione, prova a riparare la tabella del database utilizzando il comando myisamchk:

Nota: Prima di eseguire questo comando, assicurati che il server non abbia tabelle aperte.

myisamchk nome_tabella

Ripara il nome della tabella con il nome della tabella nel tuo caso. Questo comando corregge automaticamente la tua tabella.

Per riavviare il server, digita quanto segue:

servizio mysqld start

Forza il ripristino di InnoDB

Dovrai eseguire il ripristino forzato di InnoDB per estrarre i dati da una tabella di database InnoDB danneggiata.

Passaggio 1: Innanzitutto, devi aprire il file my.cnf.

In questo file, individua la sezione [mysqld].

Aggiungi la seguente riga a questa sezione:

innodb_force_recovery=1

Ora salva il file di configurazione e riavvia il server MySQL. Puoi impostare il valore di innodb_force_recovery da 1 a 6. Tuttavia, un valore superiore a 4 non è consigliato, poiché può danneggiare i dati.

Passaggio 2: Scarica i dati della tabella in un nuovo file.

Per farlo, usa il seguente comando:

mysqldump –u utente –p db_name nome_tabella> single_dbtable_dump.sql

Passaggio 3: Elimina la tabella danneggiata dal database.

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

Passaggio 4: Ripristina la tabella dal file di dump.

mysql –u utente –p

Passaggio 5: Una volta riparati i file, disabilita la modalità di ripristino forzato con il seguente comando:

#innodb_force_recovery=…

Ora puoi riavviare il servizio MySQL in modalità normale.

Ci auguriamo che i metodi di cui sopra ti aiutino a riparare il database MySQL corrotto.