2013年3月8日金曜日

MySQL5.6が勝手にsql_modeを書き換えてくれる話

MySQL5.6のmysql_install_dbは大幅に変更が加えられていて、
権限データベースを作るついでに、basedirにすごく役に立たないmy.cnfを作ってくれる。
 ⇒ MySQL5.6.8でrpmインストール時に変更になったこと

5.6.10だとscripts/mysql_install_dbの427~450行あたり。

このbasedir/my.cnf、ほとんどコメントアウトされていてホント何の役にも立たない上に、
sql_modeだけ指定されている。


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

さて問題です。
/etc/my.cnfにsql_modeを指定していて(たとえばPIPES_AS_CONCAT)、
このbasedir/my.cnfを削除しなかった場合。。。

 上 書 き さ れ ま す 。

 ⇒ my.cnfのパラメータ優先順位

ええ。
昨日まで通っていた INSERT INTO (..) VALUES ('hoge' || 'fuga', ..)が蹴られるんですよ。

勝手に作った設定ファイルで自分でやった設定をオーバーライドしないで欲しいんだホントに。


【2013/03/11 13:31】
勝手に作らないで--random-password的にオプションにして欲しい、と
Feature Requestにしようと思ったら既にあった。

http://bugs.mysql.com/bug.php?id=68416


【2013/03/12 10:50】
よく読んだら全然違ったのでふぃーちゃーりくえすとを上げた。。

0 件のコメント :

コメントを投稿