Edited at

CentOS7.3にPostgreSQL9.6.3をインストールしてみた

More than 1 year has passed since last update.


環境


  • OS:CentOS 7.3-1611 64bit Minimal

  • PostgreSQL:9.6.3


インストール


PostgreSQLのインストール

yumでbaseリポジトリからインストールできないか確認したところ、バージョンが 9.2 と古かったです。

$ yum list | grep postgresql-server

postgresql-server.x86_64 9.2.18-1.el7 base

そのため、公式サイトにある通り、リポジトリを追加してからインストールします。

# pgdg96リポジトリを追加する

$ sudo yum install -y https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm

# PostgreSQLサーバーをインストールする
$ sudo yum install -y postgresql96-server postgresql96-contrib


バージョンの確認

インストールできたかどうか、バージョンを確認してみます。

$ psql --version

psql (PostgreSQL) 9.6.3

9.6.3 と表示されているため、インストールに成功しています。


初期化

DBを初期化します。

初期化時にデータベースクラスタというDBの集合体を作成します。

$ sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

Initializing database ... OK


操作方法


サービスの起動

$ systemctl start postgresql-9.6.service


サービスの自動起動

OSの起動時にPostgreSQLが自動で起動するように設定します。

$ systemctl enable postgresql-9.6.service


ユーザーの作成

psql -l を実行したところ、ロールが存在しないと怒られてしまいました。

$ psql -l

psql: FATAL: ロール"{ログインユーザー名}"は存在しません

DBの初期化時に postgres というユーザーが作成されるので、パスワードを設定してログインし、先ほどまでログインしていたユーザーと同名のロールを作成します。

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

$ sudo passwd postgres

# `postgres` ユーザーでログインする
$ su - postgres

# `postgres` へ接続する
$ psql
psql (9.6.3)
"help" でヘルプを表示します.

# ロールを作成する
postgres=# create role {ユーザー名} login createdb password '{パスワード}';
CREATE ROLE

ロールを作成したら、先程までログインしていたユーザーへ戻し、DBを操作できるようになったか確認します。

# DBを切断する

postgres=# \q

# `postgres` ユーザーをログアウトする
$ exit
ログアウト

# DBの一覧を出力する
$ psql -l
データベース一覧
名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権
-----------+----------+------------------+-------------+-------------------+-----------------------
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(3 行)

無事操作できるようになりました。


サービスの停止

$ systemctl stop postgresql-9.6.service


その他の操作方法

DBの作成・接続、テーブルの作成や基本コマンドについてはMac版と同様のため、こちらをご参照ください。


参考リンク