Mysql/slow.log設定
提供: 初心者エンジニアの簡易メモ
目次
設定方法(mysql 5.1以前
- rootでログイン
- /etc/my.cnf
[mysqld] long_query_time=1 # x秒より遅いSQLのみログに追記 # 追加 log-slow-queries=/var/lib/mysql/mysql-slow.log # 追加 long_query_time=2
- /var/log/slow.logファイルをmysql:mysqlで生成
- mysql再起動
設定方法(mysql 5.1以降
- /etc/my.cnf
[mysqld] slow_query_log=ON slow_query_log_file=/var/lib/mysql/mysql-slow.log long_query_time = 2
- /var/log/mysql-slow.logファイルをmysql:mysqlで生成
slowlogの集計
mysqldumpslow -s t /var/lib/mysql/mysql-slow.log
動的にslow-logを取得
- まずは現状設定確認
mysql > show global variables like '%_query_%';
- 変更する
mysql> SET GLOBAL slow_query_log=ON; mysql> SET GLOBAL slow_query_log_file='/var/lib/mysql/mysql-slow.log'; mysql> SET GLOBAL long_query_time=2;
- 元に戻しておく
mysql-slow-logの過去logを自動で削除
10日で削除されます
# vi /etc/logrotate.d/mysqld /var/lib/mysql/*log { daily rotate 10 missingok notifempty sharedscripts delaycompress postrotate /sbin/service mysqld reload > /dev/null 2>/dev/null || true endscript }
実行ログ(mysql 5.1以降
/var/log/mysql がなければ作成しておく(mysql権限)
- /etc/my.cnf
[mysqld] general_log = 1 general_log_file = /var/log/mysql/mysql.log