XAMPP – Arresto MySQL in modo imprevisto

Quando apro XAMPP e faccio clic su avvia il pulsante MySQL e mi dà un errore. L’avevo avviato poco prima, ma ora non funziona.

12:19:12 PM [mysql] Tentativo di avviare l’app MySQL …
12:19:12 PM [mysql] Rilevato cambiamento di stato: in esecuzione
12:19:13 PM [mysql] Rilevato cambiamento di stato: fermato
12:19:13 PM [mysql] Errore: chiusura MySQL in modo imprevisto.
12:19:13 PM [mysql] Ciò potrebbe essere dovuto a una porta bloccata, dipendenze mancanti,
12:19:13 PM [mysql] privilegi impropri, un arresto anomalo o uno spegnimento con un altro metodo
12:19:13 PM [mysql] Premere il pulsante Log per visualizzare i log degli errori e controllare
12:19:13 PM [mysql] il Visualizzatore eventi di Windows per ulteriori indizi
12:19:13 PM [mysql] Se hai bisogno di più aiuto, copia e pubblica questo
12:19:13 PM [mysql] intera finestra di log sui forum

Ecco il contenuto del log degli errori:

2013-08-02 12:19:12 4536 [Nota] Plugin ‘FEDERATED’ è disabilitato.
2013-08-02 12:19:12 f64 InnoDB: Avviso: l’utilizzo di innodb_additional_mem_pool_size è DEPRECATED. Questa opzione può essere rimossa nelle versioni future, insieme all’opzione innodb_use_sys_malloc e con l’allocatore di memoria interno di InnoDB.
2013-08-02 12:19:12 4536 [Nota] InnoDB: l’heap della memoria InnoDB è disabilitato
2013-08-02 12:19:12 4536 [Nota] InnoDB: Mutex e rw_locks utilizzano le funzioni interbloccate di Windows
2013-08-02 12:19:12 4536 [Nota] InnoDB: le tabelle compresse usano zlib 1.2.3
2013-08-02 12:19:12 4536 [Nota] InnoDB: Non si usano le istruzioni CPU crc32
2013-08-02 12:19:12 4536 [Nota] InnoDB: inizializzazione del pool di buffer, size = 16.0M
2013-08-02 12:19:12 4536 [Nota] InnoDB: inizializzazione completata del pool di buffer
2013-08-02 12:19:12 4536 [Nota] InnoDB: il più alto formato di file supportato è Barracuda.
2013-08-02 12:19:12 4536 [Nota] InnoDB: i numeri di sequenza di registro 0 e 0 nei file ibdata non corrispondono al numero di sequenza di registro 1616798 nei file ib_logfiles!
2013-08-02 12:19:12 4536 [Nota] InnoDB: il database non si chiudeva normalmente!
2013-08-02 12:19:12 4536 [Nota] InnoDB: avvio del recupero in caso di arresto anomalo.
2013-08-02 12:19:12 4536 [Nota] InnoDB: lettura delle informazioni dello spazio tabella dai file .ibd …

Il messaggio di errore più importante è qui:

2013-08-02 12:19:12 4536 [ERRORE] InnoDB:
Tentativo di aprire un tablespace aperto in precedenza.
Il tablespace precedente mysql / innodb_table_stats utilizza lo space ID: 1 in filepath:. \ Mysql \ innodb_table_stats.ibd .
Imansible aprire tablespace xat / pagamenti che utilizza lo spazio ID: 1 in percorso file:. \ Xat \ payments.ibd

Il resto del registro:

InnoDB: Errore: imansible aprire il file tablespace a tabella singola. \ Xat \ payments.ibd
InnoDB: non continuiamo il recupero in caso di crash, perché la tabella potrebbe diventare
InnoDB: corrotto se non possiamo applicare i record di log nel registro InnoDB ad esso.
InnoDB: per risolvere il problema e avviare mysqld:
InnoDB: 1) Se c’è un problema di authorization nel file e mysqld non può
InnoDB: apri il file, dovresti modificare i permessi.
InnoDB: 2) Se la tabella non è necessaria o è ansible ripristinarla da un backup,
InnoDB: quindi puoi rimuovere il file .ibd e InnoDB farà un normale
InnoDB: crash recovery e ignora quella tabella.
InnoDB: 3) Se il file system o il disco è rotto, e non è ansible rimuovere
InnoDB: il file .ibd, puoi impostare innodb_force_recovery> 0 in my.cnf
InnoDB: e forza InnoDB per continuare il recupero da crash qui.

Qual è la causa di questi errori e come posso correggerli?

Ehi, l’ho appena fatto e ha funzionato:

  1. uscire dal server Xampp
  2. vai nella tua directory C:\xampp\mysql\data
  3. elimina il file ibdata1
  4. riavvia il server xampp

Dovrebbe funzionare

  1. Vai a mysql / data /
  2. Elimina tutti i file casuali (eccetto le effettive cartelle del database)
  3. Riavvia Apache e MySQL .

Dovrebbe risolverlo.

Aggiungi la seguente riga sotto la sezione [mysqld] nel file di configurazione mysql (my.ini) e riavvia il server Web di apache e il servizio mysql in seguito.

 [mysqld] innodb_force_recovery = 4 

Ho avuto lo stesso tipo di errore nel mio C:\xampp\mysql\data\mysql_error.log quando C:\xampp\mysql\data\mysql_error.log ad avviare mysql.

 2013-08-05 01:20:32 6780 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/slave_relay_log_info uses space ID: 3 at filepath: .\mysql\slave_relay_log_info.ibd. Cannot open tablespace test_database/test_table which uses space ID: 3 at filepath: .\test_database\test_table.ibd 

Dovrai leggere l’errore da vicino. Questo dice che test_database impedisce a mysql di avviarsi.

Si potrebbe spazzare via il database incriminato, questi passaggi risolvono il problema:

  1. Assicurati che mysql e xampp siano spenti completamente.
  2. Vai alla tua directory in cui è installato mysql, il mio è: C:\xampp\mysql\data
  3. Dovresti vedere una cartella con il nome di un database che hai creato. il mio era test_database .
  4. Crea una nuova cartella da qualche altra parte chiamata C:\xampp\mysql\data\mysql\backuptablespace
  5. Trascinare e rilasciare (non eliminare) la cartella della tabella del database malfunzionante nella directory di backup.
  6. Prova ad avviare nuovamente mysql. Per me è iniziato in 1 secondo come previsto.

Se non funziona, rimetti il ​​file dove hai iniziato e tornerai dove hai iniziato.

Se non si desidera eliminare il database e non disporre di backup:

Se non si dispone di backup dei dati della tabella e mysql non verrà avviato perché qualcosa è corrotto, sarà necessario utilizzare il processo di eliminazione per indovinare e verificare il modo in cui è stato eseguito correttamente. Segui questi passi:

  1. Crea un clone dell’intero C:\xampp\ e salvalo in un posto sicuro in modo da poter tornare al punto in cui hai iniziato.
  2. Utilizzare un approccio di “ricerca binaria” per cercare di individuare l’elemento danneggiato nel database mysql. Potrebbe essere un file, una tabella, un database, un utente o altro.
  3. Elimina l’intero database e vedi se questo consente a mysql di iniziare. Se lo fa, quindi rimetti il ​​database e prova a rimuovere alcune delle tabelle. Se non lo fa, prova a tirar fuori qualcos’altro finché non inizia.
  4. Prova a rimuovere questi file da C:\xampp\mysql\data\mysql : db.frm db.MRD db.MYI db.opt user.frm user.MYD user.MYI

  5. Quando si avvia mysql, provare a rimandare le cose finché non si trova l’unica cosa che si aggiunge, impedendole di avviarsi. Un bonus per questo è che impari come mysql funziona sotto il cofano.

Opzione nucleare

Qualcosa che hai rovinato il server mysql. Una disinstallazione e reinstallazione di XAMPP dovrebbe annullare il danneggiamento.

Quando non esegui XAMPP come amministratore, l’interruzione di MySQL causa spesso corruzione, il che significa che devi riparare o eliminare i tuoi tavoli. Per evitare ciò, è necessario eseguire XAMPP come amministratore o utilizzare il metodo del prompt dei comandi appropriato per arrestare MySQL.

Puoi cancellare ibdata1 come suggerisce Kratos, ma questo può lasciare un database danneggiato in quanto altri elementi del tuo database si trovano ancora nella cartella /mysql/data/ . Nel mio caso, questo dato residuo mi ha impedito di installare WordPress.

Un modo più semplice per annullare il danno è di ripristinare l’intera cartella /mysql/data/ . Windows ha il controllo delle versioni delle cartelle integrato – fai clic con il pulsante destro su /mysql/data/ e seleziona Restore previous versions . È quindi ansible eliminare il contenuto corrente della cartella e sostituirlo con il contenuto della versione precedente.

Addendum: per garantire che non si dimentichi di eseguire XAMPP come amministratore, è ansible fare clic con il tasto destro del mouse sul collegamento XAMPP, andare su Properties , quindi su Advanced e infine selezionare Run as administrator .

Ho anche affrontato questo problema ed è così che ho risolto.
1. Assicurati che xampp non sia nella sottodirectory. Ad esempio, dovrebbe essere C: \ xampp
2. Potrebbe essere necessario eseguire come amministratore durante l’esecuzione dell’applicazione.

Spero che questo funzionerà!

Il mio Xampp MySQL ha funzionato come segue:

 01.Go to mysql/data/ directory 02. delete the ibdata1 & ib_logfile*(ib_logfile0,ib_logfile1,ib_logfile101) file 03. restart xampp server 

Config-> Apache-> Apri httpd.conf. cercare Ascoltare o 80, aggiornare la porta di ascolto su 8081 salvare e riavviare il server. Oh e chiudi Skype se ce l’hai.

Assicurati che l’ora del sistema sia corretta. Il mio è stato impostato per l’anno 2040 in qualche modo, correggendo la data risolto il problema.

Ecco cosa ho fatto. Ho riavviato il mio computer. Quindi eseguo services.msc. Ho interrotto il servizio MySQL e l’ho riavviato. Il riavvio del server Xampp.

Per me ho lasciato Skype, che occupava la porta 80, quindi Apache funzionava allegramente sulla porta 80, che gestivo Skype e questa volta ha scelto un’altra porta.

ero di fronte allo stesso problema e nessuna delle soluzioni di cui sopra mi ha aiutato. Sono andato al file di configurazione mysql (my.ini) e ho cambiato il numero di porta in [mysqld]. Con mysql predefinito eseguito su porta 3306.

 port= 3306 

l’ho cambiato,

 port= 8111 

Quindi esegui come Administrator.Infine questo ha funzionato per me.

Ragazzi, assicuratevi di non aver installato MySql Server. Perché ho il server MySql preinstallato e quando avvio mysql dal pannello di controllo di xampp alcuni conflitti di porte stanno accadendo e non funziona .. COSÌ prima di avviare il mysql dal pannello di controllo di xampp assicurati che il server mysql non sia installato. Io uso .net così ho installato il server mysql nel passato. Disinstallarlo ha risolto il mio problema ….

Nel mio caso in cui ho sincronizzato i miei dati mysql e htdocs su dropbox, avevo solo bisogno di eliminare i file in conflitto nella cartella mysql / data e nelle sottocartelle. I file in conflitto possono essere identificati dai suoi nomi, dropbox te lo dirà. Ha risolto il problema per me.

Per fare ciò, è necessario fare clic sull’opzione x sotto Modules Services e installare i servizi MYSQL. Quindi avviare i servizi. Ecco qui.

Nessuna soluzione di cui sopra ha funzionato per me. poi ho fatto di seguito:

Ho cancellato tutti i file all’interno della directory C: \ xampp \ mysql \ data \ tranne le cartelle in questa directory. Ha funzionato perfettamente ma i miei precedenti database non funzionano ora. Così fai sopra se non ti interessa, cancellerà tutti i database precedenti in phpmyadmin.

Se il messaggio di errore è “mysql.exe ha smesso di funzionare”. Basta eseguire xampp-control.exe come amministratore per risolvere istantaneamente il tuo problema.

Se una delle cose precedenti non funziona, crea una parte posteriore della directory Xampp e reinstalla Xampp. Questo sicuramente funziona!

se stai usando MariaDB puoi provare questo:

  1. Vai a mysql / data /
  2. Rinomina aria_log_control in aria_log_control_old
  3. Riavvia “Mysql”

commento questa affermazione in mysql / bin / my.ini

 'innodb_additional_mem_pool_size=2M' 

e risolve il mio problema. di tutti voi