インストール
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]
[通知用URL]
Tweet
最終更新時間:2015年11月14日 21時29分45秒