facebook twitter hatena line email

「Mysql/slow.log設定」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(設定方法(mysql 5.1以前)
(mysql-slow-logの過去logを自動で削除)
行30: 行30:
  
 
==mysql-slow-logの過去logを自動で削除==
 
==mysql-slow-logの過去logを自動で削除==
 +
10日で削除されます
 
  # vi /etc/logrotate.d/mysqld
 
  # vi /etc/logrotate.d/mysqld
 
  /var/lib/mysql/*log {
 
  /var/lib/mysql/*log {

2015年8月9日 (日) 05:24時点における版

設定方法(mysql 5.1以前

  1. rootでログイン
  2. /etc/my.cnf
[mysqld]
long_query_time=1 # x秒より遅いSQLのみログに追記 # 追加
log-slow-queries=/var/lib/mysql/mysql-slow.log # 追加
long_query_time=5
  1. /var/log/slow.logファイルをmysql:mysqlで生成
  2. mysql再起動

設定方法(mysql 5.1以降

  1. /etc/my.cnf
slow_query_log=ON
slow_query_log_file=/var/lib/mysql/mysql-slow.log
long_query_time = 5
  1. /var/log/mysql-slow.logファイルをmysql:mysqlで生成

slowlogの集計

mysqldumpslow -s t /var/lib/mysql/mysql-slow.log

動的にslow-logを取得

  1. まずは現状設定確認
mysql > show global variables like '%_query_%';
  1. 変更する
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=5;
  1. 元に戻しておく

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
}