先日、my.cnfに設定したsql_modeが効かなくて困った話をアップしました。
その作業中に、DBサーバによって/usr/my.cnfがあったりなかったりすることを発見しました(しかもMySQLのバージョンは同一)。
この怪奇現象を突き止めるためには、/usr/my.cnfを作成しているmysql_install_dbがいつ実行されているのか突き止める必要があります。
調べたところ、mysqldのinitスクリプトでmysql_install_dbを叩いていました。具体的にはstart()の中で叩かれていました。以下がmysql_install_dbの実行されていたブロックです。
if [ ! -d "$datadir/mysql" ] ; then
# First, make sure $datadir is there with correct permissions
if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/