less than 1 minute read

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なのだろう。