Help us understand the problem. What is going on with this article?

MySQL の Slow Log の log_output=table でも mysqldumpslow で解析したい

More than 1 year has passed since last update.

mysqldumpslow は log_output=file で出力されたファイルしか受け取りません。

私が今使っている GCP の Cloud SQL だと、slow log をlog_output=table でしか受け取れません。

そこで、mysql.slow_log テーブルからデータを取得して、log_output=file で吐くログと同じ形式にします。

mysql -h [host] -u[user] -p -D mysql -s -r -e "SELECT CONCAT( '# Time: ', DATE_FORMAT(start_time, '%y%m%d %H%i%s'), '\n', '# User@Host: ', user_host, '\n', '# Query_time: ', TIME_TO_SEC(query_time), ' Lock_time: ', TIME_TO_SEC(lock_time), ' Rows_sent: ', rows_sent, ' Rows_examined: ', rows_examined, '\n', sql_text, ';' ) FROM mysql.slow_log" > /tmp/mysql.slow_log.log

これで、以下のようにして slow log を解析できます。

mysqldumpslow /tmp/mysql.slow_log.log

https://cloud.google.com/sql/docs/mysql-flags?hl=ja#tips-general-log

参考資料

MySQLでmysql.slow_logテーブルをslow queryログファイル形式でダンプする|てくめも@ecoop.net

このサイトのコマンドは↑"や'が置換されてしまっていてコピペすると動きません。そのためこちらの記事を追加しました。

mysql.slow_logテーブルからmysqldumpslowする - Qiita

こちらの記事のコマンドは私の環境ではうまく動きませんでした。

koni
株式会社AutoScale 代表 Twitter アカウント管理ツール「SocialDog」 というサービスを作っています。
http://koni.hateblo.jp/
autoscale
Twitter アカウント管理サービス「SocailDog」を開発・運営するスタートアップ
https://autoscale.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away