トップ 差分 一覧 ソース 置換 検索 ヘルプ PDF RSS ログイン

PostgreSQLの設定

インストール

yumでインストール

yum install postgresql
yum install postgresql-server

もし、新しいPostgreSQLが必要な場合は
http://yum.postgresql.org/
からインストール可能。

デーモン起動と初期設定

 systemd

データベース初期化

sudo postgresql-setup  initdb

環境によっては絶対パスを指定する必要がある。

sudo /usr/pgsql-9.4/bin/postgresql94-setup initdb

サービス有効化

sudo systemctl enable postgresql.service

 systemd以前

データベース初期化

/etc/init.d/postgresql initdb

サービス登録

chkconfig --level 2345 postgresql on

設定

 設定ファイルの役割

ファイル名(絶対パス) 概略
/var/lib/pgsql/data/postgresql.conf PostgreSQL環境設定ファイル
/var/lib/pgsql/data/pg_hba.conf 認証方法設定ファイル
/var/lib/pgsql/data/pg_ident.conf ident認証ファイル

 外部からの接続を可能にする

初期設定では、自端末からのみDBに接続できる。
外部から接続可能にするには、設定が必要。

postgresql.conf

postgresql8以降は、tipip_socket ではなくlisten_addressesを設定する

listen_addresses = 'localhost,192.168.0.1' # what IP interface(s) to listen on; <= 外部からの接続を受け付ける
listen_addresses = '*'                     # what IP interface(s) to listen on; <= すべての接続を受け付ける場合

のように設定する。

環境設定ファイル 項目(デフォルト) 説明
TCP/IP経由の接続許可 #tipip_socket = false tcpip_socket = trueとすると外部からのTCP/IP接続を有効にします。(デフォルトは無効)
TCP/IP経由のポート番号 #port = 5432 TCP/IP接続する場合のポート番号を設定します。(デフォルトは5432)
同時接続の最大数 max_connections = 100 データベースサーバへの同時接続の最大数を決定します。(デフォルトは100)
パスワード保存時の暗号化 #password_encryption = true パスワードの暗号化を有効にします。(デフォルトは有効)

先頭に”#”がついてコメントになっている場合はデフォルトが適用されます。


 パスワード認証を有効にする

postgresqlは初期設定では、OSのユーザとマッピングされているユーザだけがログインできる。
任意のpostgresqlユーザでパスワード認証するには設定が必要。

パスワードを設定する

postgresユーザにパスワードを設定する

ALTER USER postgres encrypted password '*****';

postgresユーザ以外に管理者ユーザを設定する場合

sudo -u postgres createuser manager
sudo -u postgres psql
ALTER ROLE manager WITH SUPERUSER;
ALTER USER manager encrypted password '*****';

pg_hba.conf

local all all md5
host all all 127.0.0.1/32 md5
host all all 192.168.0.0/16 md5

項目 書式 解説
TYPE local サーバ自身の接続に対応します。
TYPE host 外部PCからのTCP/IP接続に対応します。
DATABASE データベース名 認証する任意のデータベースを指定します。
DATABASE all すべてのデータベースに対応することを指定します。
USER Postgresユーザー名 認証する任意のPostgresユーザーを指定します。
USER all すべてのユーザーに対応することを指定します。
IP-ADDRESS IPアドレス 外部接続を許可するIPアドレスを指定します。
※TYPEがhostの場合のみ適用されます。
IP-MASK IPマスク IPアドレスのマスク(適用範囲)を指定します。
※TYPEがhostの場合のみ適用されます。
METHOD trust 無条件で接続許可する場合に指定します。
METHOD md5 認証時にMD5(暗号化)パスワードを要求する場合に指定します。
METHOD crypt 認証時にパスワードを要求する場合に指定します。
※この暗号化はバージョン7.2以前をサポートする場合に使用します。
METHOD password 認証時にパスワードを要求する場合に指定します。
※パスワード送信時に暗号化を行いません。
METHOD ident ident認証する場合に指定します。
METHOD peer peer認証する場合に使用します。
OPTION マップ名 ident認証する任意のマップ名を指定します。
OPTION sameuser 無条件で接続されます。

pg_ident.conf

認証方法設定ファイルでident認証を使い、OPTION設定項目がマップ名(sameuser以外)の場合、ident認証ファイル内に書かれているマップ名とログインしているLinuxユーザー名(IDENT-USERNAME)に対応するPostgreSQLユーザー名(PG-USERNAME)として接続できます。

設定ファイル名 設定の記述内容 解説
pg_hba.conf local all all ident hogemap マップ名”hogemap”としてident認証を指定。
pg_ident.conf hogemap asakusa ueno この記述内容の書式は
・MAPNAME     →hogemap
・IDENT-USERNAME→asakusa
・PG-USERNAME  →ueno
となります。Linuxユーザー”asakusa”でログインしている場合、postgresユーザー”ueno”としてデータベースに接続されます。



[カテゴリ: データベース > Postgresql]



  • Hatenaブックマークに追加
  • livedoorクリップに追加
  • del.icio.usに追加
  • FC2ブックマークに追加

最終更新時間:2015年11月14日 21時29分45秒