きたるISUCON6向け武者修行その2 -MySQLのチューニングをしてみよう-
kitakitabauer.hatenablog.com
前回プロビジョニングしたリポジトリにインストールされたMySQLの設定を確認していじっていきます。
MySQLのバージョンを確認
$ mysql --version mysql Ver 14.14 Distrib 5.6.31, for Linux (x86_64) using EditLine wrapper
執筆時点で5.6系の最新なので問題はなさそう
設定ファイルを読み込む優先順位も念のため確認
$ mysql --help | grep my.cnf order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
/etc/my.cnfが優先される(というかこれしかなかった)
my.cnfが複数ある場合は、後から読み込まれたファイルで値が上書きされるので注意が必要。
下記オプションで設定ファイルを直接指定して、
他のファイルを読み込まないようにするのが定石か?$ /etc/init.d/mysql --defaults-file=/etc/my.cnf --user=mysql
my.cnfの設定確認と修正
$ sudo vi /etc/my.conf
# スロークエリログ出力ON slow_query_log # スロークエリログファイル slow_query_log_file=/var/log/mysql/slow.sql # クエリが要した時間がこのしきい値の秒数を超えたらログを出力する(ここでは3秒) long_query_time=3
スロークエリ用のログディレクトリとログファイルを作成
$ sudo mkdir /var/log/mysql $ sudo touch /var/log/mysql/slow.sql # コロン以降を指定しないと、所有権を変更するユーザが所属するログイングループを指定したことになるので、 # わざわざグループを調べなくてもよいので少し便利 $ sudo chown -R mysql: /var/log/mysql