とある知り合いから業務管理システムの構築を依頼され、Visual Studio 2008 + CentOS + MySQLという構成でシステムを構築し、数日後には納品という時の出来事であった。
開発環境では、VMware等の仮想マシン上のサーバでテストを行っており、納品用のサーバ上でも正常に動作することを確認していたはずなのに、なぜか、納入先の環境に合わせてサーバのIPアドレスを変更すると、極端にレスポンスが悪くなってしまう

Windowsの載った仮想マシンからテストしたのがいけないのかと思い、実機のIPアドレスを変更し試すも、やはりレスポンスが悪い。
・・・レスポンスが悪いと言うよりは使い物にならない位の次元だ。
念のため、ルータに接続せず、予備のスイッチングハブを設置して試してみるが、やはり結果は同じである。
そして、IPアドレスを元の設定に戻すと、やはりこの問題は発生しない。
このため通信経路ではなく、サーバ側の問題と考えMySQLコンソールで
SHOW PROCESSLIST;
を実行してみる。
すると、アクセス中に
unauthenticated user
が発生していることを確認!!
この原因を調べてみたところ、MySQLがDNS逆引きを行うのが原因らしいことが分かった。
つまり、IPアドレスからホスト名を引こうとしているのである。
原因はコレだ

・・・と分かったところで、my.cnf の [mysqld] に
skip-name-resolve
を追加してみると、無事、テスト環境と同等のレスポンスを得ることに成功しました。
今回の場合、原因の内容から察するに、上記設定を行わなくても納入先に設置すれば特に問題なく動作するとは思われたが、本社−営業所間がVPNで結ばれているため、営業所からアクセスした場合に同様の現象が発生すると考えられる。
なので、納入前に気づいて良かった・・・と思った出来事でした(^^;