Pertanyaan InnoDB: Kesalahan: file log ./ib_logfile0 memiliki ukuran yang berbeda


Saya baru saja menambahkan baris berikut di /etc/mysql/my.cnf setelah saya mengonversi satu database untuk menggunakan mesin 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

Tapi itu membangkitkan "ERROR 2013 (HY000) di baris 2: Hilang koneksi ke server MySQL selama permintaan" error restart mysqld. Dan log kesalahan mysql menunjukkan yang berikut ini

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

Jadi saya mengomentari baris ini

# innodb_log_file_size  = 256M

Dan itu restart mysql berhasil.

Saya bertanya-tanya apa yang "5242880 byte file log" menunjukkan kesalahan mysql? Ini adalah database pertama pada mesin InnoDB di server ini jadi kapan dan di mana file log itu dibuat? Dalam hal ini, bagaimana cara mengaktifkan direktif innodb_log_file_size di my.cnf?

EDIT

Saya mencoba menghapus / var / lib / mysql / ib_logfile0 dan me-restart mysqld tetapi masih gagal. Ini sekarang menunjukkan yang berikut dalam kesalahan log.

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!

Resolusi

Ia bekerja sekarang setelah dihapus baik ib_logfile0 dan ib_logfile1 di / var / lib / mysql


101
2018-01-19 03:02






Jawaban:


InnoDB benar-benar pilih-pilih tentang konfigasinya; jika ada yang tidak beres, itu hanya menyerah dan pulang. Untuk membuat perubahan ke ukuran file log tanpa kehilangan data:

  1. Kembalikan perubahan konfigurasi apa pun yang Anda buat ke ukuran file log dan jalankan MySQL lagi.
  2. Dalam menjalankan MySQL Anda: SET GLOBAL innodb_fast_shutdown= 0;
  3. Hentikan MySQL
  4. Buat perubahan konfigurasi ke ukuran file log.
  5. Hapus kedua file log.
  6. Mulai MySQL. Ini akan mengeluh tentang kurangnya file log, tetapi itu akan membuat mereka dan semuanya akan baik-baik saja.

114
2018-01-19 03:06



Hai, terima kasih atas jawaban Anda, saya mencoba metode Anda tetapi masih gagal. - jack
Menghapus baik ib_logfile0 dan ib_logfile1 memecahkan masalah bagi saya. - Temnovit
Dan untuk saya. Terima kasih banyak, kami memiliki wiki kami kembali! - Stephen Kennedy
Karena saya memindahkan db yang baru diinstal, saya melewatkan langkah 1-4 dan mulai dengan 5 - dan berhasil :) - Limbo Peng
Terima kasih @Temnovit menghapus 2 file ini juga melakukan trik untuk saya. - bashan