ブログに戻る
1月 27, 2026ガイド

LinuxサーバーにPostgreSQLをインストールする方法

UbuntuとCentOSでPostgreSQLデータベースサーバーをインストール、設定、保護する完全ガイド。

LinuxサーバーにPostgreSQLをインストールする方法

PostgreSQLは、信頼性、機能の豊富さ、標準への準拠で知られる強力なオープンソースのリレーショナルデータベース管理システムです。このガイドは、Hiddence LinuxサーバーにPostgreSQLをインストールおよび設定するのに役立ちます。

Ubuntu/DebianにPostgreSQLをインストールする

PostgreSQLはデフォルトのリポジトリで利用可能です。最新バージョンをインストールします:

bash
sudo apt update
sudo apt install postgresql postgresql-contrib -y

# PostgreSQLを起動して有効化
sudo systemctl start postgresql
sudo systemctl enable postgresql

# インストールを確認
sudo systemctl status postgresql
psql --version

RHEL / CentOS / AlmaLinux / Rocky LinuxにPostgreSQLをインストールする

RHELベースのディストリビューションの場合、まずPostgreSQLリポジトリを追加する必要があります:

bash
# PostgreSQLリポジトリをインストール
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# CentOS 8/Rocky Linux 8の場合、次を使用:
# sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# PostgreSQLをインストール
sudo dnf install -y postgresql15-server postgresql15

# データベースを初期化
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

# PostgreSQLを起動して有効化
sudo systemctl start postgresql-15
sudo systemctl enable postgresql-15

# インストールを確認
sudo systemctl status postgresql-15
psql --version

インストールの確認

bash
# PostgreSQLのステータスを確認
sudo systemctl status postgresql

# PostgreSQLのバージョンを確認
psql --version

# PostgreSQLに接続(Ubuntu/Debian)
sudo -u postgres psql

# PostgreSQLに接続(CentOS/RHEL)
sudo -u postgres psql -d postgres

PostgreSQLの保護

postgresユーザーのパスワードを設定します:

bash
# PostgreSQLに接続
sudo -u postgres psql

# postgresユーザーのパスワードを設定
ALTER USER postgres PASSWORD 'あなたの強力なパスワード';

# PostgreSQLから退出
\q

データベースとユーザーの作成

bash
# postgresユーザーとして接続
sudo -u postgres psql

# データベースを作成
CREATE DATABASE myapp_db;

# ユーザーを作成
CREATE USER app_user WITH PASSWORD '強力なパスワード';

# 権限を付与
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO app_user;

# 退出
\q

ユーザーの管理

bash
# PostgreSQLに接続
sudo -u postgres psql

# すべてのユーザーを一覧表示
\du

# 新しいユーザーを作成
CREATE USER newuser WITH PASSWORD 'パスワード';

# 権限を付与
GRANT ALL PRIVILEGES ON DATABASE myapp_db TO newuser;

# 権限を取り消す
REVOKE ALL PRIVILEGES ON DATABASE myapp_db FROM newuser;

# ユーザーを削除
DROP USER newuser;

リモート接続の有効化

リモート接続を許可するには、PostgreSQL設定ファイルを編集します:

bash
# pg_hba.confを編集(Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/pg_hba.conf

# pg_hba.confを編集(CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/pg_hba.conf

# 行を追加:
host    all             all             0.0.0.0/0               md5

# postgresql.confを編集(Ubuntu/Debian)
sudo nano /etc/postgresql/15/main/postgresql.conf

# postgresql.confを編集(CentOS/RHEL)
sudo nano /var/lib/pgsql/15/data/postgresql.conf

# 変更:
listen_addresses = '*'

# PostgreSQLを再起動
sudo systemctl restart postgresql

基本的なPostgreSQLコマンド

bash
# データベースに接続
psql -U app_user -d myapp_db

# データベースを一覧表示
\l

# データベースに接続
\c database_name

# テーブルを一覧表示
\dt

# テーブルを説明
\d table_name

# SQLファイルを実行
psql -U app_user -d myapp_db -f script.sql

# データベースをバックアップ
pg_dump -U app_user myapp_db > backup.sql

# データベースを復元
psql -U app_user -d myapp_db < backup.sql

便利なヒント

  • データベースユーザーには常に強力なパスワードを使用してください
  • pg_hba.confで特定のIPアドレスへのリモートアクセスを制限してください
  • pg_dumpを使用して定期的にデータベースをバックアップしてください
  • PostgreSQLログを監視:/var/log/postgresql/(Ubuntu)または/var/lib/pgsql/15/data/log/(CentOS)
  • 高トラフィックアプリケーションには接続プーリング(pgBouncer)を使用してください
  • セキュリティパッチのためにPostgreSQLを最新の安定バージョンに更新してください