トップ 一覧 置換 検索 ヘルプ 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アドレスを指定します。{{br}}※TYPEがhostの場合のみ適用されます。
,IP-MASK,IPマスク,IPアドレスのマスク(適用範囲)を指定します。{{br}}※TYPEがhostの場合のみ適用されます。
,METHOD,trust,無条件で接続許可する場合に指定します。
,METHOD,md5,認証時にMD5(暗号化)パスワードを要求する場合に指定します。
,METHOD,crypt,認証時にパスワードを要求する場合に指定します。{{br}}※この暗号化はバージョン7.2以前をサポートする場合に使用します。
,METHOD,password,認証時にパスワードを要求する場合に指定します。{{br}}※パスワード送信時に暗号化を行いません。
,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,この記述内容の書式は{{br}}・MAPNAME     →hogemap{{br}}・IDENT-USERNAME→asakusa{{br}}・PG-USERNAME  →ueno{{br}}となります。Linuxユーザー”asakusa”でログインしている場合、postgresユーザー”ueno”としてデータベースに接続されます。



{{category2 データベース,Postgresql}}