CentOS7.1の64bit版のyumリポジトリにPostgreSQLを追加し、最新バージョンをインストールする方法を以下に示します。
CentOS7.1のyumで標準インストールできるPostgreSQLのバージョンは、9.2.14と古いです。PostgreSQLのyumリポジトリを利用することで、最新バージョンのPostgreSQLをyumコマンドによりインストールすることができるようになります。
PostgreSQLのリポジトリ設定パッケージをダウンロード
-以下のコマンドを実行して、PostgreSQLのリポジトリ設定パッケージを入手します。
※ここでは、PostgreSQL9.5をCentOS7 64bit用のリンクからダウンロードしています。
$ wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
- なお、PostgreSQL9.6はテストバージョンなので避けましょう
PostgreSQLのリポジトリをインストール
以下のコマンドを実行して、PostgreSQLのリポジトリ設定をインストールします。
$ rpm -Uvh pgdg-centos95-9.5-2.noarch.rpm
- デフォルトの設定では、yumコマンドの実行時にPostgreSQLのリポジトリは、自動的に使用されるようになっています。明示的に使用されるようにしたい場合は、インストールされたPostgreSQLのリポジトリの設定ファイル「/etc/yum.repos.d/pgdg-95-centos.repo」を、以下のように編集します。
[pgdg95]
:(略)
enabled=1
↓変更
enabled=0
- yumコマンドの実行時にPostgreSQL9.5のリポジトリを使用するには、以下のようにオプション「--enablerepo=pgdg95」を付けて実行します。
$ yum --enablerepo=pgdg95 list | grep postgresql
PostgreSQLのインストール
- 以下のコマンドを実行して、PostgreSQL9.5の最新バージョンのインストールを行うことができます。
# yum --enablerepo=pgdg95 install postgresql95-server
Rails用なので、pgがインストール出来ない可能性が高いから、develを入れましょう。
$ sudo yum -y install postgresql-devel
データベースの初期化
- PostgreSQLをインストール後、初めにデータベースの初期化を行う必要があります。
以下のコマンドを実行して、データベースの初期化を行います。絶対してください。
$ /usr/pgsql-9.5/bin/postgresql95-setup initdb
インストール後の設定
- PostgreSQLのサービスを起動 以下のコマンドを実行して、PostgreSQLのサービスを起動することができます。
$ systemctl start postgresql-9.5.service
PostgreSQLのサービスを自動で起動させる
- PostgreSQLのサービスは、インストール時点では自動起動設定がされていません。 自動起動設定の状態は、以下のコマンドで確認できます。
$ systemctl is-enabled postgresql-9.5.service
disabled
- 自動起動する設定になっている場合は「enabled」、なっていない場合は「disabled」と表示されます。
- 自動起動する設定になっていない場合、以下のコマンドで自動で起動するように設定できます。
$ systemctl enable postgresql-9.4.service
- 自動起動しないようにしたい場合は、以下のコマンドを実行します。
$ systemctl disable postgresql-9.4.service
PostgreSQLへの接続
PostgreSQLへの接続の認証に関する設定は、PostgreSQLの設定ファイル「/var/lib/pgsql/9.5/data/postgresql.conf」と「/var/lib/pgsql/9.5/data/pg_hba.conf」で行われています。
デフォルトの設定は、以下のようになっています。
PostgreSQLをインストールすると、データベース「postgres」、データベース接続ユーザー「postgres」が作成され、CentOS上にもユーザー「postgres」が作成されます。
よって、PostgreSQLのインストール後の最初の接続は、ローカルからUnixドメインソケットで、ユーザー「postgres」を使用したpeer認証で行うことができます。
接続するには、以下のようなコマンドを実行します。
$ su - postgres
# psql
「su」コマンドで、ユーザーを「postgres」に切り替えます。
postgresユーザーにパスワードを設定
デフォルトでは、postgresユーザーにパスワードが設定されていません。以下のようなステートメントを実行して、パスワードの設定を行うことができます。
# postgres=# ALTER ROLE postgres PASSWORD 'xxxxxxxxxx';