WEBサービス創造記

WEBサービスを作ったり保守したりしてる人のメモブログです。

MySQLの設定ファイルの場所を確認する

   

設定ファイルの場所を確認

MySQLの設定ファイルは”my.cnf”というファイル名です。
MySQLがどのディレクトリにある”my.cnf”を読み込むかは以下のようにして調べることができます。

$ mysql --help | grep my.cnf
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

設定ファイルの重複について

これらのディレクトリにmy.cnfが存在するとそれが設定ファイルとして読み込まれます。読み込まれる順番は左からとなります。
注意が必要なのは”my.cnf”が複数ある場合は後から読み込まれたファイルで値が上書きされていく点です。
したがって、”my.cnf”を編集したのに内容が反映されていない場合は意図しないディレクトリにmy.cnfが存在し、その値が読み込まれている可能性があります。

mysqld起動時に引数で”–defaults-file”というオプションで設定ファイルを直接指定することができます。
この場合はそこで指定したファイル以外は読み込まないので、上記のような問題の解決策として有効です。
なお、このオプションは引数の先頭で指定する必要があります。

$ /etc/init.d/mysql --defaults-file=/etc/mysql/debian.cnf --user=mysql    ○ 正しい引数の指定方法
$ /etc/init.d/mysql --user=mysql --defaults-file=/etc/mysql/debian.cnf    × アンチパターン
  • mysqld起動時に”–defaults-file”オプションで直接ファイルを指定することができる
  • MySQLの設定ファイルは複数読み込まれることがあり、値が重複した場合は後から読み込んだファイルが優先される
  • mysqld起動時に引数で直接指定した値は設定ファイルより優先される

 - MySQL , , ,