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をインストールする接続するときの内容は以下の通り。

つながりました。

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で接続してみます。
パスワード無しだと、

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

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

ちゃんと接続出来ました。
- 関連記事
-
テーマ:データベース - ジャンル:コンピュータ
- 2014/02/08(土) 00:15:55|
- PostgreSQL
-
| トラックバック:0
-
| コメント:0
- | 編集