行く記憶の流れは絶えずして

戻ってこないのでメモするところ

mysqlのポート

squidの件で他のポートが気になったので調べてみた。

コマンドはnetstat -an。

すると、ssh、http、httpsの他にmysqlが外部に向けてlistenしていた。

logwatchではmysqlは表示されないのか本当に攻撃がないのか。

だからといって開けておくのも気持ち悪いのでlocalhostのみ開けるようにする。

上から順に試していった。

  1. /etc/sysconfig/iptablesを編集( 追加:-A INPUT -p tcp --dport 3306 -j DROP )

    何も変わらず。

    iptablesについて詳しく知らないのでなぜだめだったかは分からず、次へ。

    下のほうに書いたので定義順とかだったのかも。

  2. /etc/my.cnfを編集( 追加:port=localhost:3306 )

    localhost127.0.0.1にしてもだめ。

    というかmysqlがエラーで起動しなくなる。

    port=にはホストIPの設定はできないらしい。

  3. /etc/my.cnfを編集( 追加:skip-networking )

    mysqlは問題なし、wordpressも動く、いけるじゃんと思ったらjdbcがつまずいて大量の例外を吐く。(要は繋げない)

  4. /etc/my.cnfを編集( 追加:bind-address=127.0.0.1 )

    これはjdbcも通った。skip-networkingがだめなのも含めて以下。

参考:http://dbaspot.com/mysql/301489-re-skip-networking-jdbc-connection.html

Java itself doesn't support unix domain sockets とあるけど、javaUnixドメインソケット(≒プロセス間通信)できないから解決するには一旦外に出るが、skip-networkingでそれがはじかれるということ?

NamedPipeSocketFactoryというライブラリを使用すればいいとあったが、mysqlのオプションでbind-addressというのを見つけたので、そこにlocalhostを指定して解決。

ライブラリも面白そうだけど、やりたいことは多いので後回しで。