my.cnf の innodb_data_file_path, innodb_log_file_size 設定で MySQL が起動しなくなる場合の対処

/etc/my.cnf に innodb_data_file_path, innodb_log_file_size を設定しようとして、mysqld を restart しようとしたら起動しなくなりました。かなりはまってしまった…。

スポンサーリンク

innodb_log_file_size 変更で MySQL が起動しなくなる

/var/lib/mysql 以下に ib_logfile0, ib_logfile1 が存在する状態で、innodb_log_file_size を設定しようとすると mysql 起動が失敗する。

/etc/my.cnf

これについては、以下のページに答えが書いてあった。

MySQLの「innodb_buffer_pool_size」と「innodb_log_file_size」の設定 – FlatLabs

なので innodb_log_file_size を変更するには、一旦 ib_logfile0, ib_logfile1 のログファイルを削除する必要がある。

innodb_data_file_path 変更で MySQL が起動しなくなる

また、/var/lib/mysql 以下に ibdata1 が存在する状態で、/etc/my.cnf に以下のように innodb_data_file_path を変更して設定しようとすると、これまた mysql 起動が失敗します。

/etc/my.cnf

これについては、以下のページに答えが書いてあった。

innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend

innodb_data_file_path = ibdata1:5000M;ibdata2:10M:autoextend
等にしてしまうと、またibdata1のサイズが異なるため、MySQLが起動しなくなります。
その際は、一度データベースのdumpを取って退避した後に、
ibで始まるファイルを削除し、my.cnfの設定変更後、MySQLを起動しdumpファイルを
インポートする作業を行う必要があります。

MySQL-server インストール完了時点で mysql_install_db が実行され、ibdata1, ib_logfile0, ib_logfile1 が作成される。なので、MySQL の初期インストール時には、/etc/my.cnf をあらかじめ作成しておき mysql をインストールする。すでに稼働中の場合で、上記パラメータを変更する場合は引用を参照。

MySQL 用の Chef を作成する際には、以下のページを参考に template リソースで /etc/my.cnf を作成する処理を、一番最初に行うようにすると良い。

chefでmysql-5.6インストールしようとしたら苦労した話 – blog.youyo.info

スポンサーリンク
現場で使えるMySQLは長くお世話になっていて、MySQL触る人には必須の本。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!