1日無駄にしたので、記録残しておきます。
VirtualBox上にCentOS6を作って、PostgreSQLをインストールし、ホストマシンからpsqlでアクセスしようとしましたが、
上手く行きませんでした。
失敗したコマンドは以下の通り。
> psql -h ipアドレス -U ユーザ名 データベース名
ホストマシンや、CentOS自身のコンソールから実行した↑のコマンドに対して、
↓のようなエラーを返してテコでも動きませんでした。
FATAL: no pg_hba.conf entry for host ipアドレス user "ユーザ名", database "データベース名", SSL off
上記のエラーメッセージを検索して出てくる解決策である、
data/pg_hba.confの『host all all 0.0.0.0/0 trust』
や、
data/postgresql.confの『listen_addresses = '*'』
も設定したのにダメ。
VirtualBoxのネットワーク設定でホストオンリーアダプターも設定済み(ipアドレスはデフォルトの192.168.56.1)だし、
ipアドレスにpingを打ってもちゃんと通るし、
PortQryを使って5432ポートを調べてもLISTENになってました。
iptablesやhosts.allowなんかも調べても問題なし。
そして、CentOS自身のコンソールから
> psql -h 192.168.56.1 -U ユーザ名 データベース名
だと通らないのに、
> psql -h 127.0.0.1 -U ユーザ名 データベース名
だと通る。
で、打つ手なし状態になっていたのですが、
別の問題を解決したら、一緒に解決しました。
CentOSにTeraTermからssh接続しようとしても「接続が拒否されました」と言われてログインできなかったのですが、
VirtualBox上のCentOSにssh接続する情報を探して、
/etc/sysconfig/network-scripts/ifcfg-eth1
を修正し、
IPADDR=192.168.56.2
と設定したら、sshもpsqlも192.168.56.2でつながりました。
(※上記ファイルの他の項目も修正しましたが、本筋ではないので省略。)
という事で、同じようなエラーにハマったら、
一度「/etc/sysconfig/network-scripts/ifcfg-eth1」を検討してみると解決するかも。