[MySQL] クエリログの確認

SQLで実行したクエリのログを見たい。

○一般クエリログの有効化

http://proengineer.internous.co.jp/content/columnfeature/7002
を参考に、一般クエリログの吐き出しを有効に。

my.iniの114行目、
“general-log=0” を”=1″に書き換えて、
MySQLサーバーを再起動すると、
datadir(97行目)以下にログが生成されるようになる。

起動から、”phpuesr”でログインして、
データベース”phptest”を選択して、
exitするまでのログ。

ただやっぱりこれ、クエリを実行したときに、
どんな感じでログが出てくるかというのを、
linuxのtailみたいな感じでリアルタイムで見たい。

いちいちファイルを開き直すのは面倒なので。

○Windowsでtailを実行する

参考サイト:Windows で tail -f する方法

PowerShell 3.0以上が必要らしい。
確認してみると。

PS > $PSVersionTable
Name                           Value
----                           -----
CLRVersion                     2.0.50727.8762
BuildVersion                   6.1.7601.17514
PSVersion                      2.0
WSManStackVersion              2.0
PSCompatibleVersions           {1.0, 2.0}
SerializationVersion           1.1.0.1
PSRemotingProtocolVersion      2.1

バージョン2.0だね。Win7標準。
アップデートした記憶もないし。

なので、4.0のインストールから。

・.NET Framework 4.5
・WMF 4.0 (Windows Management Framework)
が必要みたいだけど、

コンパネの「プログラムと機能」で見ると、
.NET Frameworkは4.7が入ってるので、
WMFをダウンロードしてインストールすればいいのかな?

このPCはWin7 32bitなので、
Windows6.1-KB2819745-x86-MultiPkg.msuをダウンロード。
で、実行。

インストール後、PCを再起動して、
再度バージョン確認。

PS > $PSVersionTable
Name                           Value
----                           -----
PSVersion                      4.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.42000
BuildVersion                   6.3.9600.16406
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion      2.2

バージョンアップ成功。

tailでログを表示させる。

PS > Get-Content -Path [パス]\[logファイル名].log -Tail 10 -Wait

一応出てきたけど、
ログが更新されるタイミングが、
メモ帳でファイルを開くときなのかな?

クエリを実行した時点では更新されなくて、
あんまり、リアルタイム感がない。

そもそも、リアルタイムで表示する
tailのオプションって何だったっけ?

Linuxコマンド集 【tail】

-fでいいのか。

○PowerShell 5.0へのアップグレード

どうやら、PowerShellの-Tailオプションは、
バージョン5以降じゃなきゃ上手く機能しないらしい。
参考:[Powershell]tail -fしたい

なので、さらにバージョンアップ。
WMF 5.0をインストール。

https://qiita.com/busonx/items/2ebca42866833516c772

Win7-KB3134760-x86.msuをダウンロード。
インストール&再起動。

PS > $PSVersionTable
Name                           Value
----                           -----
PSVersion                      5.0.10586.117
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.10586.117
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

再チャレンジ。

クエリを実行するごとに更新されるようになった。

○その他

というか、そもそも、
素直にCygwin使っとけば楽だったんだけどね。

Cygwin$ tail -f [パス]/[logファイル名].log

あとは、フリーソフトとかを使う方法もあるみたいだし。
http://xblood.hatenablog.com/entry/2016/11/10/000937

コメントを残す

メールアドレスが公開されることはありません。