Errore durante la caduta del database InnoDB


8

Sto cercando di eliminare un database in mysql, ma ogni volta che ottengo questo errore

ERROR 2013 (HY000): Lost connection to MySQL server during query

anche effettuato l'accesso come root.

Inizialmente, avevo una tabella danneggiata che non potevo ricreare, quindi ho deciso di ricreare il db. Ho un file innodb per tabella, non sono sicuro che sia importante.

Come posso eliminare questo database?

Risposte:


10

Temo che non sia possibile eliminare il database.

Il problema nasce dalla tabella corrotta. Non è necessariamente il .ibdfile. È, molto probabilmente, la voce del dizionario dei dati all'interno di ibdata1 ( Vedi rappresentazione pittorica di ibdata1 ).

Ho scritto di nuovo su questo Mar 02, 2012: tabella InnoDB SELECT restituisce ERRORE 2006 (HY000): il server MySQL è andato via (dopo un'interruzione di corrente)

Sebbene noioso, ecco cosa puoi fare per salvare le altre tabelle in quel database corrotto bad_db:

PASSO 01) USE bad_db

PASSAGGIO 02) Esegui SELECT COUNT(1) FROM tablename;per ogni tabella in bad_db. Raccogliere tutti i nomi delle tabelle che non si bloccano mysqld quando si tenta di eseguire il conteggio.

PASSAGGIO 03) Esegui mysqldump -u... -p... bad_db table1 table2 ... tableN > bad_db_goodtables.sql per tutte le tabelle che non si sono arrestate in modo anomalo mysqld.

Se si intende utilizzare un nome di database diverso, ricaricare bad_db_goodtables.sqlin quel nuovo database.

Se hai bisogno che il database abbia lo stesso nome, CATTIVE NOTIZIE !!! Avrai revisionato ibdata1. Ci sono più passaggi:

PASSAGGIO 04) mysqldump tutti gli altri database in file di dump separati

PASSAGGIO 05) Eseguire la pulizia dell'infrastruttura InnoDB ( vedere il mio Oct 29, 2010post StackOverflow )

PASSO 06) Ricarica tutti gli altri database mysqldumps validi.

Provaci !!!


Molto apprezzato Rolando! Risposta fantastica Vorrei che ci fosse un modo per riparare quel db. Mi sarebbe piaciuto che fosse lo stesso nome :)
giorgio79,

Ho eseguito MySQL per un po 'di tempo, questo è accaduto la prima volta l'altro giorno, grazie per la spiegazione.
webLacky3rdClass

1
Come è possibile eseguire la pulizia dell'infrastruttura InnoDB se non è possibile eliminare il database e il passaggio n. 2 della pulizia è eliminare tutti i database?
bancer

Probabilmente una situazione rara, ma questo è accaduto mentre ripristinavo una discarica come lavoro in background. Il terminale padre è morto e non è stato possibile rilasciare il db fino a quando non è stata interrotta la connessione di ripristino.
STW,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.