my.cnfのキーはアンダースコアとハイフンどちらが正しいのか
tl;dr
- ハイフンでもアンスコでもどっちでも良い。
- mariadb側で良しなに解釈してくれる。
- 但し、公式docではアンダースコア繋がりで書かれているので、アンダースコアにしておくのが健全そう。
my.cnfのキー表記ブレ問題
mariadbやmysqlの設定ファイル my.cnf を弄っていると、キーがハイフン繋がりだったりアンスコ繋がりだったり、疎らであることが多い。
設定は解釈してくれるし、使用上は問題無いが、なんとなく気持ち悪い。
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
ハイフン/アンスコについて記載されている公式ドキュメントを読む
Mariadbは公式ドキュメントのココに書いてあった。
Dashes (-) and underscores (_) in options are interchangeable in MariaDB Connector C 3.1.1 and later. In versions before that, options must be specified exactly as they are defined. See CONC-395 for more information.
dash(ハイフン)も、アンダースコアも、よほど古いmariadbでは無ければ良しなに互換して解釈してくれるらしい。ので、設定上はどちらを記載しても問題ない。
MariaDBのドキュメントが充実している一方、MySQLのドキュメントでsyntaxについて明確に記載されている箇所は見つけられなかった。
結局、ハイフンとアンスコどちらを設定すべき?
MySQL, MariaDBともに、my.cnfの設定例ドキュメントではアンダースコア繋がりで示されている。
[mysqld_safe] core_file_size=unlimited
公式docがそう言っているのであれば、ハイフン繋がりよりはアンスコ繋がりの方がbetterなのだろう。