今日のバッドネイチャー。
ローカルで動かしてる postgresql に、何かしらの接続が行ってるかどうかを確認するのに tcpdump で待ち構えてた。
% sudo tcpdump -xnv port 5432 -i lo
DBI の DSN には以下のような感じで設定して接続。
dbi:Pg:dbname=testdb:user:pass
psql で、
% psql -U user --password testdb
として接続するのと同じ。
はい、そこのあなた正解。
ホスト名を指定しない場合は『localhost』で接続します。つまり Unixドメインソケット。TCP/IP な通信ではないので、もちろん tcpdump でパケット拾えるわけも無く。1時間ほど無駄に悪戦苦闘。。。
psql で接続して lsof してはっとした。
% sudo lsof -c psql
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
:
:
psql 13551 hsakai 0u CHR 136,7 9 /dev/pts/7
psql 13551 hsakai 1u CHR 136,7 9 /dev/pts/7
psql 13551 hsakai 2u CHR 136,7 9 /dev/pts/7
psql 13551 hsakai 3u unix 0xe91c7b00 162199430 socket
ノード名にしっかりと socket って出てますね。。。
今年の第1目標はも少し JavaScript が書けるようになることでしたが、とりあえず手元にあるこいつを制覇したいと思います。
明日はきっとグッドネイチャー。