MySQLで「時間のかかるクエリー」をロギングします。(2012/12/23作成)
congerdesign / Pixabay
0.バージョン情報
$ mysql --version mysql Ver 14.14 Distrib 5.5.25a, for Linux (i686) using readline 5.1 $ sudo mkdir /var/log/mysql $ sudo chown mysql:mysql /var/log/mysql
1.ログセッティング
$ sudo vi /etc/my.cnf slow_query_log = ON slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 0 $ sudo /etc/init.d/mysqld restart
2.ログ解析方法
$ which mysqldumpslow /usr/bin/mysqldumpslow $ sudo mysqldumpslow -s t /var/log/mysql/mysql-slow.log …
3.ログローテート
$ which mysqladmin /usr/bin/mysqladmin $ mysqladmin --version mysqladmin Ver 8.42 Distrib 5.5.25a, for Linux on i686
$ sudo vi /etc/my.cnf [mysqladmin] user = root password = ""
$ sudo vi /etc/logrotate.d/mysql
# /etc/logrotate.d/mysql
# Note:単純にローテートする設定
/var/log/mysql/mysql-slow.log {
create 660 mysql mysql
notifempty
daily
rotate 3
missingok
compress
postrotate
# just if mysqld is really running
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping &>/dev/null
then
/usr/bin/mysqladmin flush-logs
fi
endscript
}
# /etc/logrotate.d/mysql
# Note:ローテート直前ログを特定メールアドレスに送信、その後ローテートする設定
/var/log/mysql/mysql-slow.log {
create 660 mysql mysql
notifempty
daily
rotate 3
missingok
compress
prerotate
/usr/bin/mysqldumpslow -s t /var/log/mysql/mysql-slow.log 2>/dev/null | \
mail -s "Mysql Slowlog Report" 特定メールアドレス
endscript
postrotate
# just if mysqld is really running
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping &>/dev/null
then
/usr/bin/mysqladmin flush-logs
fi
endscript
}
以上
Auto Amazon Links: プロダクトが見つかりません。
よしまさのブログをもっと見る
購読すると最新の投稿がメールで送信されます。
