
Ti è mai capitato che MySQL su XAMPP si arresti improvvisamente all’avvio segnalando errori nel log (es. MySQL shutdown unexpectedly) e impedendoti di accedere ai tuoi database locali?
Questo problema si verifica spesso a causa di un riavvio improvviso del computer, una caduta di tensione o la chiusura forzata di XAMPP mentre il database stava scrivendo su disco, lasciando la cartella mysql/data in uno stato corrotto.
Fortunatamente XAMPP include una cartella di emergenza chiamata backup. In questo tutorial vedremo la procedura passo-passo per recuperare tutti i tuoi database e ripristinare il corretto funzionamento di MySQL/MariaDB senza perdere dati.
1. Regola d’Oro: Fai Sempre una Copia di Sicurezza
Prima di qualsiasi operazione di ripristino, la regola fondamentale è non cancellare mai nulla. Lavoreremo creando una copia di backup dello stato attuale.
Passaggio 1: Arresta i Servizi
-
Apri il XAMPP Control Panel.
-
Assicurati che il modulo MySQL sia arrestato (stato Stop). Se Apache è attivo, puoi lasciarlo acceso o fermarlo temporaneamente.
2. Salvare la Cartella “data” Corrotta e Creare la Nuova Struttura
Tutti i database di XAMPP risiedono in C:\xampp\mysql\data\.
-
Apri Esplora File e naviga nella directory:
C:\xampp\mysql\ -
Rinomina la cartella
dataindata_old(odata_corrotta). -
Crea una nuova cartella vuota all’interno di
C:\xampp\mysql\e chiamaladata.
3. Inizializzare la Nuova Cartella con i File di Riserva (backup)
All’interno di C:\xampp\mysql\ troverai una cartella predefinita denominata backup, che contiene l’impronta pulita e funzionante dell’installazione di MariaDB/MySQL.
-
Apri la cartella
C:\xampp\mysql\backup\. -
Seleziona e copia tutti i file e le cartelle presenti al suo interno.
-
Incolla il contenuto copiato all’interno della nuova cartella vuota:
C:\xampp\mysql\data\.
4. Trasferire i Tuoi Database e il File ibdata1
Ora che abbiamo un ambiente MySQL pulito e funzionante, dobbiamo recuperare i tuoi dati reali dalla cartella data_old.
A. Copiare le cartelle dei database utente
-
Apri la cartella
C:\xampp\mysql\data_old\. -
Seleziona le cartelle corrispondenti ai tuoi database personali (es.
wordpress,mio_progetto,db_gestionale). -
ATTENZIONE – COSA NON COPIARE: Non copiare le cartelle di sistema:
-
mysql -
performance_schema -
phpmyadmin -
test
-
-
Incolla le cartelle dei tuoi database all’interno della nuova directory
C:\xampp\mysql\data\.
B. Copiare il file indice dei dati (ibdata1) — FASE CRITICA
La maggior parte delle tabelle in MySQL/MariaDB usa l’engine InnoDB. Le strutture e le chiavi dei dati InnoDB sono catalogate nel file di sistema ibdata1.
-
Nella cartella
C:\xampp\mysql\data_old\, individua il fileibdata1. -
Copialo e incollalo all’interno di
C:\xampp\mysql\data\. -
Quando Windows ti chiede se vuoi sovrascrivere il file esistente, seleziona Sostituisci il file nella destinazione.
5. Verifica del Ripristino ed Esecuzione del Test
-
Torna al XAMPP Control Panel.
-
Clicca su Start in corrispondenza del modulo MySQL.
-
Se l’indicatore diventa verde e mostra la porta (di norma
3306), l’avvio è andato a buon fine! -
Apri il browser e accedi a phpMyAdmin:
http://localhost/phpmyadmin -
Verifica che nella colonna di sinistra compaiano tutti i tuoi database e che le tabelle al loro interno siano leggibili e integre.
Pulizia Finale
Una volta accertato che tutti i siti e le applicazioni funzionano correttamente e che nessun dato è andato perduto, puoi eventualmente eliminare o archiviare la cartella data_old.





