LoginSignup
3

More than 5 years have passed since last update.

CentOS7に新しいバージョンのPostgresqlをyumでインストールする

Posted at

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';

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
3