##設定ファイルの場所を確認
$ 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起動時に引数で直接指定した値は設定ファイルより優先される