エンジニア劣等感の克服記

エンジニアでありながら、エンジニアに劣等感を感じている。それを克服していきたい。

mysqlとの通信内容をtcpdumpで確認する

概要

mac上のlocalhostで起動しているmysqlとの通信内容をtcpdumpコマンドを用いて確認する。

やったこと

以下のようなコマンドで、tcpdumpでport3306の内容をみようとした。

sudo tcpdump dst -i lo0 -s0 -A port 3306

しかし、mysqlクライアントでmysqlに接続しselectなどしても、tcpdumpの結果に何も表示されない・・・。

少し調べてみると、どうやらlocalhostのmysqlに接続するときにはtcpで接続するのではなく、unix domain socket経由で接続するとのこと。

unix domain socketでの通信内容をみるにはstraceコマンドを用いることができる。ただmacにはstraceがなく、代わりにdtrussコマンドというのを使えるらしい。が、dtruss使ってみたがちょっと調べてもよく分からず、、(途中で面倒くさくなってきたというのもある)

そもそもmysqltcpとかで繋げばいいのでは?という発想に至り少し調べると、以下のようにmysqlクライアントのオプションを指定することで、tcpで接続するようにもできるらしい。

 mysql --protocol tcp -u xxx -p

このようにmysqltcpで接続すると、tcpdumpにも無事結果が表示された。

ただ正直、表示された内容を見てもよく分からない・・・! 次回以降では表示された内容を詳しくみる。

メモ

  • 調べた時間:30分程度
  • この記事の執筆にかかった時間:10分もかかっていない?