
Ubuntu日本語フォーラム

ログインしていません。
インストール
Synapticでpostgresql、pgadmin3をインストール
PostgreSQLでは、OSのユーザとデータベースユーザとは独立している。
インストールした直後の状態はOSのユーザとしてのpostgres(このままではログインできない)
とデータベースユーザとしてのpostgresがあるのみ
psqlでの初期設定
PostgreSQLにログインするためLinuxユーザとしてのpostgresのパスワードを設定する。
$ sudo passwd postgres
Linuxユーザとしてのpostgresでログイン
$ su postgres
この時点でシェルから $ psql とタイプするとpsqlを起動できる。
これはpg_hda.confファイルに
local all all ident ident sameuser
の記述があるためで、この行がないとpsqlを起動できない。
また、この時点ではPostgreSQLユーザとしてのpostgresはパスワードが設定されていないので
パスワードが必要なログイン方法(passward,md5等)ではpsqlを起動できない。
psqlでのPostgreSQLユーザパスワードの設定
postgres=# alter user ユーザ名 with password 'パスワード';
psqlでのPostgreSQLユーザの追加
$ createuser -P
Enter name of user to add: hogehoge
Enter password for user "hogehoge": パスワード
Enter it again: 上で入力したパスワード
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
pgAdmin3での初期設定
初期状態ではPostgreSQLサーバに接続できない。
これはpg_hda.confファイルの設定において、
localhostではUbuntuのログインユーザ名でPostgreSQLサーバにログインしようとして失敗(推測)
IPv4 local connectionsではログイン方法がmd5に指定されているため、ユーザpostgresで
PostgreSQLサーバにログインしようとするが、ユーザpostgresのパスワードが設定されていないため失敗する。
ユーザpostgresでPostgreSQLサーバにログインするには
/etc/pstgresql/8.3/main/pg_hba.confを修正
host all all 127.0.0.1/32 md5
↓
host all all 127.0.0.1/32 trust
ちなみにこの方法ではLinuxユーザーとしてのpostgresとしてPostgreSQLサーバへ接続しないので、
Linuxユーザーとしてのpostgresのパスワードの設定は、必要ない。
他のコンピュータからからPostgreSQLへの接続
ファイアウォールの設定
gufwをインストール
外部からのトラフィックを拒否する
PostgreSQL用のポートを追加
tcp の5432
他のコンピュータからPostgreSQLへの接続を許可するには、psqlまたはpgAdmin3でユーザを追加した後
/etc/pstgresql/8.3/main/postgresql.confを修正
# listen_addresses = 'localhost'
↓
listen_addresses = '*'
/etc/pstgresql/8.3/main/pg_hba.confに次の行を追加(192.168.0.*の場合)
host all all 192.168.0.0/24 md5
注意)ちなみにすべての端末からすべてのユーザのPostgreSQLへの接続を許可するには
host all all 192.168.0.0/0 trust
(192.168.0.0の部分は何でもよい)
PostgreSQLの設定を反映させる
設定を反映させるにはpostgresqlサービスに設定をリロードさせる。
サービス名はバージョン番号がついた「postgresql-8.3」になっている。
$ sudo /etc/init.d/postgresql-8.3 restart
オフライン