MySQL で 流れたクエリを見たりログを取るにはどうすれば?って話。
そもそも、以前会社で Microsoft SQL Server を使わされてた。で、それにはプロファイラ ってプログラムが同梱されてて、それを使えば出来た。Windows の [スタートメニュー] から [すべてのプログラム] と辿っていくだけで見つかるのでメチャ分かり易い所にある。 (とは言え会社では新人研修で習わないツールは皆使わないので意味無いけど…) で、MySQL でも当然出来るはず〜と思って調べたら…なかなか出てこない。
どうも、 Enterprise 版なら分析ツールがついてくるらしいけど… Enterprize 版はお金の無い人は自力でビルドせなならん。で、金は無い!ビルド?ふん!根性はもっと無い!とふてくされていたら……発見!…運はあったみたい!
my.iniファイルの [mysqld] の後に mysqld を立ち上げる時に渡すパラメタを書けるのかな?なので、そこに log って一行を書き込めば、--log が渡され、machinename.logが MySQL のどっかのフォルダに出来るみたい。めでたし、めでたし。ちなみに、MySQL のマニュアルによると、このログはクエリがサーバに到着した時点で記録する、で、その他にも更新が完了する直前に書き込むバイナリログなんてのもある。なるほど…。
てか、そもそもなんでこんなにSQLのログ取りを熱心にしてたかというと、Glassfish で JDBC レルムによる認証を試してたんだけど、何故か認証されない。Glassfish はデータベースの管理者にすらパスワードを分からなくする MD5 等を使ったパスワードの照合をサポートするので、もしかしてその機能を殺せてないのか??とか思ったりして、流れてる SQL を調べようって事になったわけ…。
で、結局、調べて見たらユーザ名が違ってた、、、dummy と dumy。今時、パソコン初心者でも自分のユーザ名は忘れない…。なんにせよ、今は happy を haapy と間違えた知り合いを笑えない…。


