「Mysql/slow.log設定」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→設定方法(mysql 5.1以降) |
(→実行ログ(mysql 5.1以降) |
||
| (同じ利用者による、間の12版が非表示) | |||
| 行4: | 行4: | ||
[mysqld] | [mysqld] | ||
long_query_time=1 # x秒より遅いSQLのみログに追記 # 追加 | long_query_time=1 # x秒より遅いSQLのみログに追記 # 追加 | ||
| − | log-slow-queries=/var/ | + | log-slow-queries=/var/lib/mysql/mysql-slow.log # 追加 |
| − | long_query_time= | + | long_query_time=2 |
#/var/log/slow.logファイルをmysql:mysqlで生成 | #/var/log/slow.logファイルをmysql:mysqlで生成 | ||
#mysql再起動 | #mysql再起動 | ||
| 行11: | 行11: | ||
==設定方法(mysql 5.1以降== | ==設定方法(mysql 5.1以降== | ||
#/etc/my.cnf | #/etc/my.cnf | ||
| + | [mysqld] | ||
slow_query_log=ON | slow_query_log=ON | ||
| − | slow_query_log_file=/var/ | + | slow_query_log_file=/var/lib/mysql/mysql-slow.log |
| − | long_query_time = | + | long_query_time = 2 |
#/var/log/mysql-slow.logファイルをmysql:mysqlで生成 | #/var/log/mysql-slow.logファイルをmysql:mysqlで生成 | ||
==slowlogの集計== | ==slowlogの集計== | ||
| − | mysqldumpslow -s t /var/ | + | mysqldumpslow -s t /var/lib/mysql/mysql-slow.log |
==動的にslow-logを取得== | ==動的にslow-logを取得== | ||
| 行24: | 行25: | ||
#変更する | #変更する | ||
mysql> SET GLOBAL slow_query_log=ON; | mysql> SET GLOBAL slow_query_log=ON; | ||
| − | |||
mysql> SET GLOBAL slow_query_log_file='/var/lib/mysql/mysql-slow.log'; | mysql> SET GLOBAL slow_query_log_file='/var/lib/mysql/mysql-slow.log'; | ||
| − | mysql> SET GLOBAL long_query_time= | + | 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 | ||
2015年8月25日 (火) 20:47時点における最新版
目次
設定方法(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
