本稿ではデータベースサーバー PostgreSQL 10 を CentOS 7 に yum でインストールする方法について解説します。
PostgreSQL 10 の入手元は?
CentOS 7 では、ソフトウェアパッケージマネージャとして yum を採用しています。 CentOS 7 の公式 yum リポジトリでも PostgreSQL が提供されていますが、公式 yum リポジトリの PostgreSQL のバージョンは 9.2 となっています。 もっと新しい PostgreSQL 10 をインストールするには、PostgreSQL の公式 yum リポジトリから取得するのが良さそうです。
PostgreSQL公式リポジトリの追加
それでは、まず PostgreSQL の公式リポジトリを CentOS 7 に追加します。 リポジトリ情報は、PostgreSQL の公式サイトのこちらのページから RPM として提供されています。 yum localinstall コマンドで PostgreSQL 10 用の RPM の URL を指定してインストールします。
# yum -y localinstall https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
パッケージを確認する
それではさっそくインストール作業にとりかかりたいと思いますが、まずは PostgreSQL の公式 yum リポジトリで提供されている PostgreSQL 10 の詳細を確認してみましょう。 PostgreSQL 10 に関連するパッケージは、postgresql10- というプレフィックスで始まるパッケージ名になっており、PostgreSQL 10 Server のパッケージ名は postgresql10-server です。 次のように yum info コマンドを実行すると、提供されている PostgreSQL 10 の情報が閲覧できます。 (下記の実行結果は2018年02月現在のものです)
# yum info postgresql10-server
Available Packages
Name : postgresql10-server
Arch : x86_64
Version : 10.1
Release : 1PGDG.rhel7
Size : 4.3 M
Repo : pgdg10/7/x86_64
Summary : The programs needed to create and run a PostgreSQL server
URL : http://www.postgresql.org/
License : PostgreSQL
Description : PostgreSQL is an advanced Object-Relational database management system (DBMS).
: The postgresql10-server package contains the programs needed to create
: and run a PostgreSQL server, which will in turn allow you to create
: and maintain PostgreSQL databases.
この結果の場合は、バージョン 10.1 が利用できることが確認できました。 (また、この情報が表示されたということから、yum で提供されているということも確認できました。)
インストール
PostgreSQL 10 が PostgreSQL のリポジトリで提供されていることを確認できたので、さっそくインストールしましょう。 次のように yum install コマンドにパッケージ名 postgresql10-server を指定してインストールします。
$ yum -y install postgresql10-server
コマンドの実行後、Complete! と表示されればインストールは完了です。 念のため次のように postgres –version というコマンドを実行し、コマンドが利用できることと、インストールされた PostgreSQL のバージョンを確認しましょう。
# /usr/pgsql-10/bin/postgres --version
postgres (PostgreSQL) 10.1
データベース初期化
インストールが完了したら、データベースを初期化します。 次のように postgresql-setup initdb コマンドを実行します。
# /usr/pgsql-10/bin/postgresql-10-setup initdb
Initializing database ... OK
インストールされたファイル
上記のインストール作業により、主にどんなファイルがインストールされたのかをみてみましょう。
ファイル・ディレクトリ | 説明 |
---|---|
/var/lib/pgsql/10/ | PostgreSQL の設定やデータ、バックアップファイルが保存されるディレクトリ。 |
/var/lib/pgsql/10/data/postgresql.conf | PostgreSQLのメインとなる設定ファイル。 |
/var/lib/pgsql/10/data/pg_hba.conf | PostgreSQLのユーザ認証についての設定ファイル。 |
/usr/pgsql-10/bin/createdb | PostgreSQLのデータベースを作成するためのコマンド。 |
/usr/pgsql-10/bin/psql | PostgreSQLを操作するためのクライアント。 |
/usr/pgsql-10/bin/postgres | PostgreSQLサーバー。 |
サービス化
サーバーを起動・再起動した際に、自動的に PostgreSQL が起動するように設定しましょう。 次のように systemctl enable コマンドで postgresql を指定します。
# systemctl enable postgresql-10
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-10.service to /usr/lib/systemd/system/postgresql-10.service.
起動と停止
さて、それではインストールした PostgreSQL を起動・停止してみましょう。 起動は systemctl start で postgresql-10 を指定します。
# systemctl start postgresql-10
また、停止させたい場合は systemctl stop で postgresql-10 を指定します。
# systemctl stop postgresql-10
また、停止と起動を同時に行う(再起動する)場合は systemctl restart で postgresql-10 を指定します。
# systemctl restart postgresql-10
ユーザ
PostgreSQL をインストールし終えた現時点でのユーザーについて確認します。
Linux ユーザ
CentOS 7 のユーザとして、新たに「postgres」というユーザーが追加されています。 PostgreSQL Server は、このユーザで実行されます。
PostgreSQL ユーザ
また PostgreSQL のユーザとして、同様に「postgres」という状態が初期状態で作成されています。 この postgres ユーザは、インストールした PostgreSQL Server の管理者権限を持つユーザです。 初期状態だとパスワードは設定されていません。
ログインしてみよう
最後に、インストールした PostgreSQL にログインしてみましょう。 次のように postgres ユーザーとして psql を利用してログインします。
# sudo -u postgres psql -U postgres
could not change directory to "/root"
psql (10.1)
Type "help" for help.
postgres=# ここから PostgreSQL のコマンドを実行できる
PostgreSQL にログインできることが確認できたら、ここでは \q というコマンドを入力してログアウトします。
postgres=# \q
おわりに
ここまでで本稿はおわりです。 本稿では、PostgreSQL をインストールし、起動・停止、ログイン・ログアウトできることまでを確認しました。