Indipendentemente dal dispositivo o dal software che state utilizzando, c’è sempre il rischio che i dati si corrompano. Quando si parla di database, “corrotto” significa che alcune o tutte le informazioni contenute nelle tabelle potrebbero essere impossibili da leggere o non accessibili. Ci sono molte ragioni per cui questo può accadere ed è fondamentale sapere come risolvere il problema.

Per fortuna, riparare una tabella MySQL è più facile di quanto si possa pensare. Ci sono diversi modi per farlo, tra cui l’utilizzo degli strumenti di riparazione MySQL integrati e dei software di gestione dei database. È molto probabile che si riesca a recuperare tutti i dati.

In questo articolo parleremo di come avviene la corruzione del database e spiegheremo come verificare la presenza di errori nelle tabelle. Poi vi illustreremo quattro metodi per riparare i database MySQL in modo da essere preparati per qualsiasi situazione. Andiamo al sodo!

Cosa causa la corruzione di una tabella MySQL?

Quando si parla di corruzione dei dati, ci si riferisce agli errori nei dati del computer che possono verificarsi durante la scrittura, la lettura, la memorizzazione o l’elaborazione. Nelle tabelle MySQL (e nelle tabelle MongoDB o MariaDB), la corruzione può causare la perdita di dati, ostacolare le prestazioni del database o addirittura rendere le tabelle illeggibili.

In altre parole, una tabella è corrotta quando c’è un problema di integrità dei dati o il software del database non riesce a interpretarli.

Ci sono molti motivi per cui una tabella MySQL può essere danneggiata, tra cui:

  • Problemi hardware. Componenti hardware difettosi, come i dischi rigidi o la memoria, possono introdurre errori nei dati.
  • Bug del software. I bug di MySQL o del sistema operativo possono portare alla corruzione dei dati, soprattutto se causano crash o comportamenti inaspettati.
  • Interruzioni di corrente. Improvvise interruzioni di corrente possono interrompere i processi di scrittura dei dati, causando dati incompleti o corrotti.
  • Arresto improprio. Se MySQL o il server non vengono chiusi correttamente, i dati potrebbero non essere scritti correttamente sul disco, causandone la corruzione.
  • Errori del file system. Problemi con il file system sottostante possono causare la corruzione o addirittura la perdita dei dati.
  • Malware o tentativi di hacking. Un software dannoso o un accesso non autorizzato possono causare la corruzione dei dati, sia deliberatamente che inavvertitamente.

Il modo migliore per evitare molti di questi problemi è utilizzare un ambiente di hosting di database sicuro. Se il vostro host web offre accesso a hardware e prestazioni di qualità, è meno probabile che si verifichi un problema di corruzione del database.

Come si fa a verificare la presenza di errori in una tabella MySQL?

Se siete preoccupati per un’eventuale corruzione, potete usare il comando “CHECK TABLE” per controllare il database e verificare la presenza di errori in una tabella. Questo comando esamina la struttura e i dati della tabella alla ricerca di eventuali incongruenze o dati corrotti.

Il modo manuale per farlo è usare il terminale per eseguire il comando CHECK TABLE. Per farlo, dovrete aprire la riga di comando di MySQL, collegarvi al database che contiene la tabella ed eseguire questo comando:

CHECK TABLE table_name;

Sostituite “table_name” con il nome della tabella che volete controllare. Il comando restituirà un messaggio di stato che indica se la tabella è a posto, se ha degli avvertimenti o se contiene degli errori.

Tuttavia, esistono modi più semplici per eseguire questa operazione. Se avete accesso a uno strumento di gestione del database, come phpMyAdmin, potete usarlo per controllare le tabelle attraverso un’interfaccia utente. Per farlo, accedete al database del vostro sito usando phpMyAdmin, selezionate un database e scegliete le tabelle che volete controllare:

Scegliere le tabelle del database da controllare e riparare in PHPMyadmin
Scegliere le tabelle del database da controllare e riparare

Dopo aver selezionato l’opzione Check Table, cliccate su Go. phpMyAdmin restituirà una nuova pagina che offre una panoramica dello stato di ogni tabella. Se una tabella non ha subito danni, vedrete un semplice messaggio di OK.

Quanto tempo ci vuole per riparare una tabella MySQL?

Il tempo necessario per riparare una tabella MySQL dipende da diversi fattori, tra cui le dimensioni della tabella, l’entità della corruzione e il metodo di riparazione scelto. In alcuni casi, questa operazione può richiedere solo pochi minuti, mentre in altri può essere un processo lungo che richiede di provare diversi approcci.

La soluzione più efficiente per riparare una tabella MySQL danneggiata è quella di ripristinare il database da un backup recente. In questo modo potrete risparmiare il tempo e la fatica di riparare manualmente la tabella, soprattutto se il danneggiamento è esteso o difficile da risolvere.

Tuttavia, questo approccio presuppone che abbiate a disposizione un backup affidabile e recente. Tra qualche paragrafo parleremo di come eseguire un ripristino del database da un backup.

Come riparare le tabelle MySQL (4 metodi comprovati)

In questa sezione esploreremo quattro modi per riparare una tabella MySQL. Queste tecniche sono tutte relativamente semplici, anche se potrebbe essere necessario provarne più di una fino a trovare la soluzione che fa al caso vostro.

1. Riparare le tabelle MySQL in phpMyAdmin

phpMyAdmin è uno degli strumenti di gestione dei database più popolari sul mercato. La maggior parte degli hosting web permette di utilizzare phpMyAdmin per accedere e modificare i propri database, incluso Kinsta.

Il processo di accesso al database varia a seconda del pannello di controllo dell’host web. Se state usando MyKinsta, selezionate il sito a cui appartiene il database. Andate alla scheda Info e scorrete verso il basso fino alla sezione Accesso al database.

Il nome utente e la password del database saranno accessibili qui:

Il nome utente e la password del database in MyKinsta
Il nome utente e la password del database in MyKinsta

Cliccate su Apri phpMyAdmin e utilizzate le credenziali per accedere. Scegliete quindi il database danneggiato. phpMyAdmin elencherà tutte le tabelle di quel database. Potete selezionarle tutte utilizzando le caselle di controllo a sinistra oppure solo le tabelle danneggiate.

Una volta scelte le tabelle che volete riparare, scorrete verso il basso e aprite il menu a tendina With selected. Scegliete l’opzione Repair table:

Selezionare le tabelle del database e scegliere l'opzione di riparazione
Opzione per riparare la tabella

Tenete presente che non tutti i database supportano la funzione di riparazione di phpMyAdmin. Se il vostro lo fa, vedrete un messaggio di successo accanto al nome di ogni tabella nella pagina successiva.

Se non siete sicuri di quali siano le tabelle da riparare, tornate alla sezione precedente su come verificare la corruzione dei database. Potete utilizzare la funzione Check di phpMyAdmin per cercare le tabelle alla ricerca di errori e quindi ripararle.

2. Utilizzare la riga di comando di MySQL

Se vi sentite a vostro agio nell’uso della riga di comando e avete accesso alla Secure Shell (SSH) del server del sito, questo è un altro modo per riparare una tabella MySQL. Per prima cosa, dovrete accedere alla shell di MySQL, che di solito è installata insieme a MySQL.

Con la shell MySQL, potrete collegarvi al database dal terminale. Per farlo, usate il seguente comando:

mysql -u -p

I termini -u e -p indicano il nome utente e la password del database. In pratica, il comando dovrebbe essere simile a questo:

$ mysql -u username1 -p

Una volta inserito il nome utente, la shell MySQL chiederà la password. Se l’inserimento è riuscito, apparirà il prompt dei comandi di MySQL.

Da qui potrete utilizzare qualsiasi comando MySQL desideriate. Quello che serve per riparare il database è:

REPAIR TABLE table_name;

Dovrete sostituire il segnaposto table_name con il nome della tabella che volete riparare. MySQL tenterà di riparare la tabella e la shell visualizzerà un messaggio di stato che indica i risultati del processo di riparazione.

Nella maggior parte dei casi, consigliamo di utilizzare un’interfaccia grafica o uno strumento di gestione del database come phpMyAdmin. Tuttavia, se vi sentite a vostro agio nell’usare la riga di comando e conoscete il nome della tabella che volete riparare, questo approccio funzionerà altrettanto bene.

3. Ripristinare il database da un backup

Se avete un backup recente del database, potete ripristinarlo per recuperare la tabella danneggiata. Questo è spesso il metodo più veloce e affidabile per risolvere problemi di corruzione gravi.

Alcuni web host forniscono backup automatici dell’intero sito che includono il database. Qui su Kinsta, avrete backup giornalieri del sito web, che potrete ripristinare in qualsiasi momento dal cruscotto di MyKinsta:

Backup giornalieri elencati nel cruscotto MyKinsta
Backup giornalieri in MyKinsta

Offriamo anche servizi di Hosting di Database, perfetti se non avete bisogno di ospitare un sito web completo. I nostri ambienti di Hosting di Database sono progettati per proteggere dalla corruzione dei dati dovuta a guasti hardware. Inoltre, i database vengono sottoposti a backup automatico. Potete ripristinare il database da un backup precedente in qualsiasi momento.

Tuttavia, non tutti gli hosting web offrono backup automatici. Se il vostro non lo fa, dovrete eseguire il backup del sito web e del database manualmente. In alternativa, se utilizzate WordPress, potete affidarvi ai plugin di backup.

4. Usare strumenti di terze parti per la riparazione del database

Esistono diversi strumenti di terze parti che si possono utilizzare per riparare una tabella MySQL, come Stellar Repair for MySQL e SysTools SQL Recovery. Questi strumenti possono aiutarvi a recuperare i dati dalle tabelle corrotte e a riparare problemi che potrebbero essere difficili da risolvere utilizzando le utility MySQL integrate.

A seconda dello strumento utilizzato, il processo può essere semplice come esportare il database corrotto in un file .xml (cosa che potete fare utilizzando phpMyAdmin) e analizzarlo con il software di riparazione.

Il software dovrebbe essere in grado di rilevare i problemi di corruzione dei dati e di ripararli automaticamente. Una volta completata la riparazione, potete utilizzare la funzione di importazione di phpMyAdmin (o qualsiasi strumento di gestione dei database che state utilizzando) per sovrascrivere le informazioni danneggiate.

Tenete presente che la vostra esperienza potrebbe variare a seconda dello strumento che usate. Alcuni software di riparazione dei database, come SysTools SQL Recovery, richiedono l’acquisto di una licenza. Acquistare un software costoso per riparare il database vale la pena solo se le informazioni sono critiche e ogni altro metodo di riparazione è già fallito.

Riepilogo

Un database corrotto potrebbe sembrare un problema irrisolvibile, ma spesso, invece, è abbastanza semplice da risolvere. Considerando la popolarità di MySQL, non dovrebbe sorprendere che esistano molti modi per riparare i database MySQL danneggiati. Nella maggior parte dei casi, non è nemmeno necessaria una grande dimestichezza con il funzionamento dei database per poterli riparare.

Se avete accesso a phpMyAdmin, questo software permette di verificare facilmente la presenza di errori nelle tabelle del database e di ripararle. Potete anche indicare a MySQL di riparare qualsiasi tabella dalla linea di comando, se vi trovate bene con quel sistema. Tuttavia, se avete accesso ai backup del database, il loro ripristino è di solito il modo più semplice per riparare le tabelle corrotte.

Avete altre domande su come usare MySQL per riparare una tabella? Parliamone nella sezione commenti qui sotto!