Symfoware

Symfowareについての考察blog

FreeBSD + PostgreSQL 9.3.2 外部からの接続を許可する

FreeBSD 10.0にPostgreSQL 9.3.2をインストール(pkg install使用)

ここでインストールしたPostgreSQLに外部から接続できるようにしてみます。

こちらを参考にしました。
How to Allow Remote Connection to PostgreSQL Database using psql




接続できないことを確認する



-h [IPアドレス]オプションを指定してpsqlを起動しようとすると、接続エラーになります。


$ psql postgres -h 192.168.1.102
psql: could not connect to server: Connection refused
    Is the server running on host "192.168.1.102" and accepting
    TCP/IP connections on port 5432?



このコマンドが通るようになったら、外部接続OKになったとみなして良いようです。





pg_hba.confファイルの編集



pg_hba.confを編集し、接続を許可するセグメントを追記します。


# vi /usr/local/pgsql/data/pg_hba.conf




192.168.1.1/24を追記。


# "local" is for Unix domain socket connections only
local all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.1/24         trust
# IPv6 local connections:
host    all             all             ::1/128                 trust








postgresql.confファイルの編集



postgresql.confを編集し、リッスンするアドレスを変更します。


# vi /usr/local/pgsql/data/postgresql.conf




「listen_addresses」はデフォルトではコメントアウトされ、「localhost」指定になっています。


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;




コメントを解除し、「*」(全てのIPアドレス)を指定しておきます。


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'                 # what IP address(es) to listen on;






編集が終わったら、PostgreSQLを再起動します。


# /usr/local/etc/rc.d/postgresql restart







接続確認



最初失敗したコマンドをもう一度実行してみます。


$ psql postgres -h 192.168.1.102
psql (9.3.2)
Type "help" for help.




つながりました。





pgAdminで確認



pgAdminで接続してみます。
インストールはこちら。

Ubuntu 11.10にpgAdmin3をインストールする


接続するときの内容は以下の通り。

280_01.png


つながりました。

280_02.png


trustって、パスワード無しで接続できるのね。






パスワード認証



接続時にパスワードを求めるようにしてみます。

createuserコマンドで、ユーザーを作成します。
「--pwprompt」オプションを指定して、パスワードも設定します。


$ createuser --pwprompt --interactive pgadmin
Enter password for new role: [パスワードを入力]
Enter it again: [もう一度パスワードを入力]
Shall the new role be a superuser? (y/n) y





もうひとつ、pg_hba.confファイルを編集して、認証方式に「md5」を指定します。


# "local" is for Unix domain socket connections only
local all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.1/24         md5




PostgreSQLを再起動します。


# /usr/local/etc/rc.d/postgresql restart



これで接続時にパスワードが求められるようになりました。

試しに、pdAdminで接続してみます。

パスワード無しだと、

280_03.png


「Error connecting to the server: fe_sendauth: no password supplied」というエラーになります。

280_04.png


作成したpgadminユーザーで接続すると、

280_05.png


ちゃんと接続出来ました。

280_06.png

関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2014/02/08(土) 00:15:55|
  2. PostgreSQL
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<FreeBSD + PostgreSQL 9.3.2 にJavaで接続する | ホーム | PostgreSQL データベースのバックアップ、リストア>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1225-725b9a8f
この記事にトラックバックする(FC2ブログユーザー)