2009-08-13 3 views
7

In passato non ho fatto molti ritocchi, quindi potrebbe essere relativamente facile, tuttavia sto riscontrando problemi. Questo è quello che faccio:Problema durante la modifica di innodb_log_file_size

  1. arresto MySQL
  2. Modifica my.cnf (cambiando innodb_log_file_size)
  3. Rimuovere ib_logfile0/1
  4. Avviare MySQL

Inizia benissimo tuttavia tutte le tabelle InnoDB hanno il file .frm è un errore non valido, lo stato mostra che il motore InnoDB è disabilitato quindi ovviamente tornerò indietro, rimuoverò la modifica e tutto funzionerà di nuovo.

Sono stato in grado di modificare ogni altra variabile che ho provato ma non riesco a capire perché InnoDB non si avvia anche dopo aver rimosso i file di registro. Mi sto perdendo qualcosa?

Grazie.

Modifica: Incollare il registro di seguito - sembra che sembra ancora trovare il file di registro anche se non ci sono?

Shutdown:

090813 10:00:14 InnoDB: Starting shutdown... 
090813 10:00:17 InnoDB: Shutdown completed; log sequence number 0 739268981 
090813 10:00:17 [Note] /usr/sbin/mysqld: Shutdown complete 

avvio dopo aver apportato delle modifiche:

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 
InnoDB: than specified in the .cnf file 0 268435456 bytes! 
090813 11:00:18 [Warning] 'user' entry '[email protected]' ignored in --skip-name-resolve mode. 
090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections. 
Version: '5.0.81-community-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Edition (GPL) 
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm' 
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm' 
090813 11:00:19 [ERROR] /usr/sbin/mysqld: Incorrect information in file: './XXXX/User.frm' 

Il suo solo uno spam dello stesso errore fino a quando mi correggo

Quando ha avuto inizio dopo che ha ricreato il i file di log devono essere nello stesso punto in cui sono.

risposta

15

In primo luogo, devo sottolineare che prima di qualsiasi chage nei file di dati InnoDB, si dovrebbe leggere 13.2.5. Adding, Removing, or Resizing InnoDB Data and Log Files.

I passaggi indicati sono quasi corretti. Si consiglia di eseguire il backup prima di questo tipo di modifiche. Vediamo cosa è successo a voi:

I messaggi di errore

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 
InnoDB: than specified in the .cnf file 0 268435456 bytes! 

sono causate dalla modifica delle dimensioni del innodb_log_file_size e non lo cancellare i vecchi file. Probabilmente hai dimenticato di cancellare de ib_logfile0/1 la prima volta che hai eseguito mysqld dopo la modifica.Il messaggio

090813 11:00:18 [Note] /usr/sbin/mysqld: ready for connections. 

mostra che avete risolto questo problema (rimuovendo ib_logfile s). Ma, rimuovendoli, crei l'altro problema. Dati danneggiati per XXXX \ User.frm o qualche problema con InnoDB Engine.

Per essere sicuri che InnoDB è abilitato, eseguire questo comando su un prompt di MySQL:

show variables like "%inno%"; 

Nell'elenco dei risultati deve avere "have_innodb = YES". A volte quando InnoDB può non start (il valore è NO o DISABLED) viene visualizzato il messaggio Incorrect information in file.
- Se questo è il problema, è stato modificato qualcos'altro che impedisce a InnoDB Engine di avviarsi correttamente (permessi di datadir o permessi di tmpdir, altre variabili innodb (non hai mostrato il log completo), ecc.) . Rivedere le modifiche o inserire i file .cnf (prima e dopo).
- Se il motore InnoDB è YES, è necessario riparare la tabella. (Se E'questo caso, aggiungere un commento e I'll aggiungere le informazioni qui. Io troppo pigro per farlo ora.)

+0

perché il donwvote? come potrei migliorarlo? –

+0

Raccomando l'arresto completo, quindi prima 'SET GLOBAL innodb_fast_shutdown = 0;' – KCD

1

La prima riga dell'errore indica che non è stato eliminato ib_logfile0. Puoi confermare che stai rinominando/cancellando quello giusto?

0

Cose da controllare:

  • C'è abbastanza spazio sul dispositivo per creare il file di registro di quelle dimensioni? Questo comportamento potrebbe provenire da un dispositivo completo.
  • I file di registro vengono creati con impostazioni errate?
  • Il percorso per il file di registro non viene visualizzato come assoluto. Solo per i sorrisi, vedi se ci sono altre posizioni sul tuo disco che contengono un ib_logfile0. Potrebbe essere un insetto stupido.
+0

C'è abbastanza spazio. (circa 250 g gratis) I file di registro non vengono creati affatto, dopo aver eseguito l'avvio non esistono da nessuna parte. Ha trovato una ricerca per ib_logfile * nella radice e è tornato con l'unica posizione da cui li ho rimossi. – savageguy

0

Hai provato a usare un client SQL per modificare il campo innodb_log_file_size?

Personalmente mi piace SQuirreL

+3

I campi relativi a innodb non possono essere modificati dal client. devono essere modificati in my.cnf e presi come nuovi valori al riavvio del servizio. –

0

Ho il sospetto che è stato rimosso i file di registro errate. cercare altri file ib_logfile *. forse stai usando innodb_log_group_home_dir?

in tal caso, assicurarsi di aver rimosso ib_logfiles da lì e non dal datadir.