!!!インストール 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}}