Soluciones Xampp

XAMPP MySQL non si avvia? Ecco come risolvere l’errore nel 2026

Se XAMPP e MySQL non si avviano, il problema è quasi sempre uno dei tre: la porta 3306 occupata, un servizio bloccato dal firewall o un file di log che ti dice esattamente cosa non va. Niente panico, te lo spiego come lo direi a un amico al bar.

Perché MySQL in XAMPP non parte (e non è colpa tua)

XAMPP è comodo, ma quando MySQL non si avvia ti fa perdere mezza giornata. La causa numero uno è che un altro programma sta già usando la porta 3306, quella di default di MySQL. Su Windows capita spesso con altri server SQL, con Skype in alcune versioni, o con istanze di MySQL installate separatamente.

La seconda causa è il firewall di Windows che blocca il servizio mysqld.exe. La terza, meno ovvia ma frequente, è un file di log che segnala un errore di permessi o un InnoDB corrotto.

Se vedi il messaggio “MySQL shutdown unexpectedly” nel pannello di controllo di XAMPP, sappi che nel 90% dei casi è un conflitto di porta o un file log corrotto nella cartella data.

Passo 1: scopri chi ti sta rubando la porta 3306

Apri il Pannello di controllo di Windows, vai su Strumenti di amministrazione e poi su Visualizzatore eventi. Seleziona Registri di Windows e cerca eventi con ID 10048: indica che una porta è già in uso.

In alternativa, apri il Prompt dei comandi come amministratore e digita:

  • netstat -ano | findstr :3306 — ti mostra il PID del processo che occupa la porta.
  • tasklist | findstr PID — sostituisci PID con il numero trovato e scopri quale programma è.

Se è un programma che non ti serve, chiudilo. Se è un servizio di sistema, cambia la porta di MySQL nel file my.ini di XAMPP (cerca port=3306 e metti 3307), poi riavvia.

Passo 2: controlla il firewall di Windows (qui casca l’asino)

Vai su Pannello di controllo > Sistema e sicurezza > Firewall di Windows > Configurazione avanzata. Nelle regole di ingresso e uscita cerca voci che contengono MySQL o mysqld.

Se trovi una regola di blocco, disattivala. Attenzione: a volte il firewall blocca silenziosamente anche senza regole esplicite, quindi prova a disattivare temporaneamente il firewall per test. Se MySQL parte, sai che è lui il colpevole.

Un errore comune è credere che disattivare il firewall sia pericoloso: per un ambiente di sviluppo locale non lo è, basta riattivarlo dopo il test.

Passo 3: leggi i log, ti dicono tutto

Vai nella cartella di installazione di XAMPP (di solito C:xamppmysqldata) e cerca il file mysql_error.log o error.log. Aprilo con un editor di testo e cerca le ultime righe.

Se leggi qualcosa come “InnoDB: Cannot allocate memory” o “The InnoDB log sequence number is in the future”, il database è corrotto. In quel caso la soluzione più rapida è:

  1. Rinomina la cartella data in data_old.
  2. Crea una nuova cartella data vuota.
  3. Copia dentro i file ibdata1, ib_logfile0, ib_logfile1 dalla vecchia cartella.
  4. Copia le cartelle dei tuoi database (una per database) dalla vecchia data_old.
  5. Riavvia MySQL da XAMPP.

Questo metodo recupera i dati nella maggior parte dei casi senza perdere nulla. Se il problema persiste, elimina i file ib_logfile0 e ib_logfile1 e riavvia: MySQL li ricrea automaticamente.

Errore 404 XAMPP e altri intoppi collegati

Capita spesso che insieme al problema di MySQL salti fuori anche un errore 404 di XAMPP o che Apache non parta. Sono sintomi legati: se Apache e MySQL litigano per le stesse porte (80 e 443 per Apache, 3306 per MySQL), il pannello di controllo va in tilt.

Controlla che Apache non sia configurato su una porta occupata da IIS o da Skype. Nel file httpd.conf di XAMPP cerca Listen 80 e cambialo in Listen 8080 se necessario.

Cosa fare se MySQL si avvia ma si spegne subito dopo

Questo è il caso più subdolo. Il servizio parte, la luce verde si accende per due secondi e poi si spegne. Quasi sempre è colpa di un file ibdata1 corrotto o di un’istanza precedente di MySQL rimasta in memoria.

Apri il Task Manager, cerca mysqld.exe e termina il processo. Poi riavvia XAMPP come amministratore (click destro sull’icona > Esegui come amministratore).

Se non basta, disinstalla e reinstalla XAMPP mantenendo la cartella htdocs e i database. È noioso ma funziona.

Prevenzione: come non rivedere più questo errore

Non installare più istanze di MySQL sul stesso computer. Se usi altri tool come Workbench o Laragon, configura porte diverse. E soprattutto, fai backup periodici della cartella data: è l’unico modo per dormire sonni tranquilli.

Un’ultima cosa: se usi Windows 11, controlla che l’antivirus integrato non stia mettendo in quarantena mysqld.exe. A me è successo e ci ho perso due ore prima di capirlo.

Seguendo questi passaggi, MySQL di XAMPP torna a funzionare come un orologio svizzero. E se qualcosa non quadra, i log sono sempre lì a dirti la verità.