InnoDBエンジンを使用するように1つのデータベースを変換した後、/ etc/mysql/my.cnfに次の行を追加しました。
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
しかし、mysqldを再起動すると、「ERROR 2013(HY000)at line 2:Lost connection to MySQL server during query」エラーが発生し、mysqldが再起動されます。そしてmysqlエラーログは以下を示しています
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
だから私はこの行をコメントアウトしました
# innodb_log_file_size = 256M
そして、mysqlを正常に再起動しました。
Mysqlエラーで「5242880バイトのログファイル」とは何を示しているのでしょうか。これは、このサーバーのInnoDBエンジンの最初のデータベースなので、ログファイルはいつ、どこに作成されますか?この場合、my.cnfでinnodb_log_file_sizeディレクティブを有効にするにはどうすればよいですか?
[〜#〜]編集[〜#〜]
/ var/lib/mysql/ib_logfile0を削除してmysqldを再起動しようとしましたが、それでも失敗しました。次のエラーログが表示されます。
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!
解像度
/ var/lib/mysqlのib_logfile0とib_logfile1の両方を削除した後、動作するようになりました
InnoDBはその設定についてめちゃくちゃ好きです。何かが正しくない場合、それはあきらめて家に帰ります。データを失わずにログファイルのサイズを変更するには: