外部端末からPostgreSQLに接続する方法
はじめに
GISでよく利用するShapeデータを、VM上のLinuxサーバに構築していたPostgreSQLへ格納していたのですが、データ確認を行う必要があった為、クライアントPCからQGISを用いて接続を試みたのですが、デフォルト設定では接続できませんでした。
接続できなかった理由
調べてみると、デフォルトでは
- 外部からのアドレス(ホスト名)、ポートがListenされていない。
- 接続する際の認証方式が、外部からの設定は行われていない。
ことが原因でした。
「1.」については、 postgresql.conf を修正することで、「2.」については、 pg_hba.conf を設定することで解決できるようになります。
実際の設定例
設定ファイルを修正
- /var/lib/pgsql/9.4/data/postgresql.conf
listen_addresses = '*' # '*'を指定することで全てのアドレスから許可できるようになります。 # 他にIPアドレスの指定も行うことができます。 port = 5432 # 外部から接続を許可するためのポート番号を指定します。
- /var/lib/pgsql/9.4/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: # ADDRESS -> all を指定することで、全てのアドレスを接続許可 # METHOD -> trust をしているすことで無条件で接続許可 host all all all trust
PostgreSQLの再起動
$ sudo service postgresql-9.4 restart
最後に
今回紹介した方法は、開発環境下においての利用を想定していたので、セキュリティ面などは考慮に入れていません。実際の利用においては、用途に応じて、セキュリティを考慮に入れてくださいね。