読者です 読者をやめる 読者になる 読者になる

D&I Blog

このブログでは、今までに培ってきた技術的なことや、得意としている地図のことなどについて、幅広く取り扱っていこうと考えています。積極的に新しいことにチャレンジしたいメンバーもいるので、そのようなトピックも扱っていきたいと思います。

D&I BLOG

To mind the creative destruction

外部端末からPostgreSQLに接続する方法

はじめに

GISでよく利用するShapeデータを、VM上のLinuxサーバに構築していたPostgreSQLへ格納していたのですが、データ確認を行う必要があった為、クライアントPCからQGISを用いて接続を試みたのですが、デフォルト設定では接続できませんでした。

f:id:d-and-i:20170403212125p:plain

接続できなかった理由

調べてみると、デフォルトでは

  1. 外部からのアドレス(ホスト名)、ポートがListenされていない。
  2. 接続する際の認証方式が、外部からの設定は行われていない。

ことが原因でした。

「1.」については、 postgresql.conf を修正することで、「2.」については、 pg_hba.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

最後に

今回紹介した方法は、開発環境下においての利用を想定していたので、セキュリティ面などは考慮に入れていません。実際の利用においては、用途に応じて、セキュリティを考慮に入れてくださいね。