LoginSignup
2
8

More than 5 years have passed since last update.

CentOS7にPostgreSQL10をインストール〜基本設定してみた

Last updated at Posted at 2018-07-14

DockerのCentOS7上でpostgresqlをインストールして初期設定してみたので、その手順を書いていきます。

前提

Dockerのインストールとコンテナ作成は済んでいるものとして、Dockerについては一切触れません。
ネット上に情報がたくさんあるので各自で調べてください。

構築手順

環境

  • CentOS 7.5
  • PostgreSQL 10.4

インストール

レポジトリの追加

# sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm

クライアントとサーバのインストール

# yum -y install postgresql10 postgresql10-server

コマンドのPATHの設定

# echo "PATH=/usr/pgsql-10/bin:$PATH" >> ~/.bashrc
# source ~/.bashrc

DBの初期化

# postgresql-10-setup initdb

OKという表示が出れば成功です!

DBの起動

# systemctl start postgresql-10   // 起動
# systemctl enable postgresql-10  // 自動起動

DBの操作

PostgreSQLにアクセス

# su - postgres
# psql
// 以下のプロンプトになれば成功!
postgres=#

ユーザの作成

例としてユーザ名admin、パスワードadmin、権限がデータベース作成のみのユーザを作成してみます。

postgres=# CREATE ROLE admin WITH LOGIN PASSWORD 'admin' CREATEDB;
postgres=# \du   // 作成できたか確認

                                   List of roles
 Role name |                         Attributes                         | Member of 
-----------+------------------------------------------------------------+-----------
 admin     | Create DB                                                  | {}

データベースの作成

adminを所有者とするadminというデータベースを作成します。

postgres=# CREATE DATABASE admin OWNER admin;
postgres=# \l   // 作成できたか確認

                             List of databases
   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+-----------+---------+-------+-----------------------
 admin     | admin    | SQL_ASCII | C       | C     | =Tc/admin            +
           |          |           |         |       | admin=CTc/admin

データベースオブジェクトに対する権限

adminユーザにadminデータベースに関する全ての権限を付与します。

postgres=# GRANT ALL ON DATABASE admin TO admin\;

PostgreSQLから出る

postgres=# \q

認証方式の変更

デフォルトではpeerとident認証のみ許可されているので、この状態ではOSでadminユーザを作成する必要が出てきます。そこで、デフォルトの設定はコメントアウトして、MD5による暗号化を用いたパスワード認証を設定します。

# vi /var/lib/pgsql/10/data/pg_hba.conf   // 以下のように編集

   # TYPE  DATABASE        USER            ADDRESS                 METHOD
   # "local" is for Unix domain socket connections only
-  local   all             all                                     peer
+  local   all             all                                     md5

変更の読み込み

# systemctl reload postgresql-10

adminユーザでアクセス

# psql -U admin

Password for user admin: 
psql (10.4)
Type "help" for help.

admin=>

このようになれば成功です!

以上、PostgreSQLのインストールから基本設定でした

参考

2
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
8