Ho appena aggiunto le seguenti righe in /etc/mysql/my.cnf dopo aver convertito un database per utilizzare il motore InnoDB.
innodb_buffer_pool_size = 2560M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 16
innodb_flush_method = O_DIRECT
Ma genera "ERRORE 2013 (HY000) alla riga 2: errore di connessione al server MySQL durante la query" durante il riavvio di mysqld. E il registro degli errori mysql mostra quanto segue
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
100118 20:52:52 [ERROR] Plugin 'InnoDB' init function returned error.
100118 20:52:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100118 20:52:52 [ERROR] Unknown/unsupported table type: InnoDB
100118 20:52:52 [ERROR] Aborting
Quindi ho commentato questa riga
# innodb_log_file_size = 256M
E ha riavviato mysql con successo.
Mi chiedo che cosa hanno mostrato i "5242880 byte del file di registro" nell'errore mysql? È il primo database sul motore InnoDB su questo server, quindi quando e dove viene creato quel file di registro? In questo caso, come posso abilitare la direttiva innodb_log_file_size in my.cnf?
MODIFICARE
Ho provato a eliminare / var / lib / mysql / ib_logfile0 e a riavviare mysqld ma non è ancora riuscito. Ora mostra quanto segue nel registro degli errori.
100118 21:27:11 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 256 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Progress in MB: 100 200
InnoDB: Error: log file ./ib_logfile1 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
Risoluzione
Funziona ora dopo aver eliminato sia ib_logfile0 che ib_logfile1 in / var / lib / mysql