MySQLのスロークエリログを取得する

  • my.cnf(MySQL 5.1)
    [mysqld]
    # スロークエリログの出力先
    log_slow_queries = /var/log/mysql-slow.log
    # これより実行に時間がかかる SQL ステートメントをロギング(秒)
    long_query_time = 2
    # インデックスを使用しないクエリをロギング
    #log-queries-not-using-indexes
    # 管理ステートメントもロギング
    #log-slow-admin-statements
    
  • my.cnf(MySQL 5.5以降)
    [mysqld]
    # スロークエリログを有効にする
    slow_query_log=1
    # スロークエリログの出力先
    slow_query_log_file=/var/log/mysql-slow.log
    # これより実行に時間がかかる SQL ステートメントをロギング(秒)
    long_query_time = 2
    # インデックスを使用しないクエリをロギング
    #log-queries-not-using-indexes
    # 管理ステートメントもロギング
    #log-slow-admin-statements
    
  • 空のログファイルを作成し、パーミッションを設定後、mysqldを再起動する。
    # touch /var/log/mysql-slow.log
    # chown mysql:mysql /var/log/mysql-slow.log
    # service mysqld restart
    
  • ログをクリアする場合は、
    # :> /var/log/mysql-slow.log