2015年10月22日木曜日

MySQL 5.6 query_cache_typeをmy.cnfに設定したらエラー

MySQL 5.6 のメモリのチューニングをしていた際のハマりです。
query_cache_typeを設定していなかったので、起動中のMySQLを一旦止めて、my.cnfに下記を追記して再起動。
query_cache_limit = 16M
query_cache_size = 512M
query_cache_type = 1
するとエラー。

The server quit without updating PID file...

もうこれ見飽きた...

my.cnfにquery_cache_typeの設定をするとこのエラーが出てしまうのですが
記述に問題あるようにも見えなくて、実際、記述自体に問題はないわけです。
でもただ起動できないでどうしてエラーなのかさっぱりわからず
MySQLからset global を使って、グローバルでセットしてみるも
やはりエラー。(当たり前)

Query cache is disabled; restart the server with query_cache_type=1 to enable it

【結果】
query_cache_type は、設定/変更する際、ログファイルの削除が必要だったんです。

【手順】
クエリキャッシュを変更するときには
1.MySQL サービス停止
2.ib_logfile0、ib_logfile1を削除(不安だったらリネーム)
3.my.cnfを書き換え
4.MySQLサービス起動
という流れになります。

余談ですが、MySQLを再起動するとき、残っていたロックファイル(lock/subsys/mysql)を削除しようとしたのですが、killしてもkillしても復活してきたので潔くOSをrebootしました。