【PostgreSQL】CentOSにPostgreSQLをインストール

PostgreSQLロゴ サーバ関連
スポンサーリンク

はじめに

環境

OS:CentOS 7

概要

yumコマンドでインストールするだけ。
ついでなので、初期設定も記載しておく。

手順

yumコマンド実行

yum install postgresql-server

インストールディレクトリ:/var/lib/pgsql/

初期化

以下コマンドにより、インストールディレクトリに設定ファイルなどが配置される

postgresql-setup initdb

postgresql.conf

PostgreSQLの基本的な設定を記載する。

基本的なものは以下の通り。(詳しくは調べてね)

  • 接続元のIPアドレス制限
  • 最大接続数
  • ポート

外部からも接続できるよう、listen_addressesを変更しておく。

listen_addresses='*'

なお、外部からアクセスする場合はポートを開放しておく必要がある。
以下のコマンドで開放しておこう。

firewall-cmd --zone=public --add-port=5432/tcp --permanent

設定内容の確認は以下

firewall-cmd --list-all

pg_hba.conf

クライアントのアドレスとロール名を指定し、どのDBへ接続許可をするかを設定する。
書き方は以下の通り

TYPE       DATABASE  USER  ADDRESS  METHOD 

今回は、以下の設定をしておきます

host    all             all             all                     password

TYPE

local,host,hostssl,hostnossl のいずれか 1 つを設定する

host,hostssl,hostnossl はTCP/IP を使った接続を行う場合に使用
※host を指定した場合は SSL または非 SSL での接続、hostssl を使った場合は SSL での接続、hostnossl は非 SSL での接続を許可する

DATABASE

接続を許可するデータベース名を指定する。
複数指定する場合はカンマ区切り

all:すべて
sameuser:ユーザと同じ名称のDB

USER

接続を許可するユーザ名を指定する。
複数指定する場合はカンマ区切り

all:すべてのユーザ

ADDRESS

接続を許可するIPアドレスを指定する

IPv4、IPv6の指定が可能で、allはすべてを許可する。
また、ホスト名での指定も可能

起動

以下のコマンドでPostgreSQLを起動する

service postgresql restart

以下で接続できることを確認する

psql -U postgres -h localhost

・・・・・あれ??
接続できない・・・。
インストールすると自動でpostgresユーザが作成されるはずなんだが・・・。

どうやら、ローカルからの接続の場合、
OSのユーザとパスワードが一致したユーザでないと接続できないらしい。

ほかのユーザでもPostgreSQLへログインできるよう、pg_hba.confの設定を変更する

local   all    all   peer

を以下に変更し、

local   all    all   trust

以下コマンドでPostgreSQLを再起動

systemctl restart postgresql.service

再度ローカルから接続してみる

画像で見てわかる通り、”-h localhost“は不要でした(笑

ユーザ(ロール)作成

基本的はログインユーザの作成方法です。

create role sample login password 'sample';

データベース作成

基本的なDBの作成方法です。

create database sample_db owner=sample template=template0 encoding='UTF8';

※変なところで改行されていますが、上記コマンドを入力してください。

Auto Commit

デフォルトでは、オートコミットはONになっています。
というより、PostgreSQLのサーバにオートコミットの設定はないらしく(ほんとか?
クライアント側で実装されているそうです。

一応、以下の方法で一時的にOFFにすることはできるが、再度接続した際にONに戻ってしまう。。。
なんかやり方あったような気がするんだけどなー

接続後:

\set AUTOCOMMIT off
\echo :AUTOCOMMIT

コメント

タイトルとURLをコピーしました