もうMySQL 5.5 GAが出てから1年以上が経ち、つい先日とうとうMySQL 5.6 GAも出た昨今、これから先パーソナルユースでこれより以前のMySQLなど使うことはないだろうと~/.my.cnf
を書いていたのだけど、昨日ちょっとしたアレでMySQL 5.1を入れたらMySQLが進化しすぎててオプションコメントアウトしまくらないと動かないわーとかいってたらloose-
つけるといいですよって教えてもらった。
my.cnfのオプション名の頭にloose-と書いておくと、オプションが存在しなくてもWARNINGでERRORにならずに済みますよー。loose-log-slow-queriesloose-slow-query-logと書くと5.1でも5.5でも使える、みたいな。
— ts. yoku (@yoku0825) February 6, 2013
これは知らなかった!
MySQL 5.1とか使うことはまぁないだろうけど、いろんなバージョン試してるときに明らかに新しめのオプションにloose-
つけとくと便利そう。とりあえず今回は以下のオプションにloose-
つけたらいけた。
[mysqld] loose_innodb_strict_mode loose_innodb_buffer_pool_instances = 1 loose_innodb_read_io_threads = 8 loose_innodb_write_io_threads = 8 loose_innodb_file_format = Barracuda loose_innodb_print_all_deadlocks loose_innodb_large_prefix
あとcharacter_set_server = utf8mb4
でこけるのは、オプションはあるけど値が未対応なやつなので、my.cnf
のグループをバージョン指定して読み込めるやつを使って回避した。
[mysqld] character_set_server = utf8mb4 [mysqld-5.1] character_set_server = utf8
my.cnf
のオプション指定は後勝ちなんで、MySQL 5.1のときはutf8
、それ以外のときはutf8mb4
という感じに指定できます。
あと、最新のMySQLをソースからとりあえず深く考えずにビルドしてみたい向きにはmysql-buildを使うといいらしいです。