pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

mariadbのmy.cnfについて

疑問点

 
my.cnfにはセクションが色々ある。どの機能が、どのセクションを読み込むの?
mysqldセクションが複数ファイルに描かれる場合もあり。この場合は、どっちが有効?
my.cnfファイルが複数ある場合あり、どれが読まれるの?
 

回答

 
mariadb.com
 
コマンド毎に読み込まれるセクションが決まっている。
どのセクションを読むかは、以下コマンドで確認できる。

$ [コマンド] --help --verbose

 
mysqldの場合、以下メッセージが出力される。

$ mysqld --help --verbose
〜省略〜
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 
The following groups are read: mysqld server mysqld-10.2 mariadb mariadb-10.2 client-server galera
〜省略〜

 
以下を確認できる

  • 読み込まれる設定ファイル・順番
  • 読み込まれるセクション

 
更に上記URLによると

各設定ファイルは コマンド --help --verbose が示した順番で、一度ずつ読み込まれます。 各設定オプションは、その出現順にコマンドラインオプションで指定するのと同じ効果があります。

 
最後に読み込まれたパラメタが有効になるっぽい
 
有効なパラメタは以下方法で確認できる。

$ my_print_defaults [コマンド]

 

$ my_print_defaults mysqld|egrep max_connections
--max_connections=100
--max_connections=4096
$ mysql -s -N -uroot -pPASSWORD -e 'show variables' | egrep max_connections
extra_max_connections	1
max_connections	4096
$ 

 
同一パラメタが複数指定された場合は、最後に読み込まれたものが有効