PostgreSQL のインストール:包括的なステップバイステップガイド

Linux、macOS、またはWindowsにPostgreSQLをインストールし、ユーザーを作成し、アクセスを確認し、安全なネットワーク接続を構成します。

PostgreSQLのインストール: 包括的なステップバイステップガイド

PostgreSQLのインストールは通常は簡単ですが、Linux、macOS、Windowsで詳細が異なります。目標は単にサービスを起動することだけではありません。使用可能なデータベースユーザー、クリーンな接続方法、ネットワークアクセスの安全なデフォルト設定も必要です。

このガイドを使用して、開発用または小規模サーバーセットアップ用にPostgreSQLをインストールし、その後、お使いのオペレーティングシステムの現在のパッケージに合わせてパスとバージョン番号を調整してください。

前提条件

インストールプロセスを開始する前に、システムが以下の基本的な要件を満たしていることを確認してください。

  • 管理者権限: Linux/macOSではsudo権限、Windowsでは管理者権限が必要です。これらはソフトウェアのインストールとシステムサービスの構成に必要です。
  • インターネット接続: インストールパッケージのダウンロードに必要です。
  • 十分なディスク容量: 初期インストールは比較的小さいですが、データベースは成長します。データ用に十分なディスク容量があることを確認してください。

Linuxへのインストール

Linuxディストリビューションは通常、デフォルトのパッケージリポジトリを通じてPostgreSQLを提供しており、インストールは簡単です。

Debian/Ubuntu

UbuntuなどのDebianベースのシステムでは、aptを使用してPostgreSQLをインストールできます。

  1. パッケージリストの更新: 常にパッケージマネージャーのリストを更新して、最新の利用可能なパッケージを入手できるようにします。

    sudo apt update
    
  2. PostgreSQLのインストール: postgresqlパッケージをインストールします。これには通常、サーバー、クライアントユーティリティ、ドキュメントが含まれます。バージョンを指定するか(例:postgresql-16)、postgresqlのみを使用してデフォルトバージョンをインストールできます。

    sudo apt install postgresql postgresql-contrib
    

    postgresql-contribパッケージは、追加のユーティリティと機能を提供します。

    : Debian/Ubuntuでは、PostgreSQLサービスは通常、インストール後に自動的に起動し、デフォルトのpostgresユーザー(システムユーザーとデータベースユーザーの両方)が作成されます。

  3. インストールの確認: サービスのステータスを確認します。

    sudo systemctl status postgresql
    

    active (exited)またはactive (running)を示す出力が表示されるはずです。メインサービスユニットが複数のクラスターを管理し、それらが別々のプロセスとして実行される場合、exitedは正常です。

RHEL/CentOS/Fedora

Red Hatベースのシステムでは、dnf(または古いCentOS/RHELバージョンではyum)を使用します。

  1. PostgreSQLリポジトリのインストール: PostgreSQLは、デフォルトのOSリポジトリで利用可能なものよりも新しいバージョン用に独自のリポジトリを提供しています。最新の安定リリースにはこれを使用することをお勧めします。

    sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # EL-9の場合: sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    # 必要に応じて、EL-8-x86_64を特定のOSバージョンとアーキテクチャに置き換えてください。
    
  2. デフォルトのPostgreSQLモジュールを無効にする(該当する場合): 一部のRHEL/CentOSバージョンにはデフォルトのPostgreSQLモジュールがあります。PGDGリポジトリとの競合を避けるために無効にします。

    sudo dnf -qy module disable postgresql
    
  3. PostgreSQLのインストール: サーバーとcontribパッケージをインストールします。16を希望のバージョンに置き換えてください。

    sudo dnf install -y postgresql16-server postgresql16-contrib
    
  4. データベースクラスターの初期化: Debian/Ubuntuとは異なり、RHELベースのシステムでは、データベースクラスターを手動で初期化する必要があることがよくあります。

    sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
    

    インストールしたバージョンに応じて、パス/usr/pgsql-16/binpostgresql-16-setupを調整してください。

  5. PostgreSQLサービスの起動と有効化: サービスを起動し、起動時に起動するように構成します。

    sudo systemctl enable postgresql-16
    sudo systemctl start postgresql-16
    
  6. インストールの確認: サービスのステータスを確認します。

    sudo systemctl status postgresql-16
    

macOSへのインストール

macOSでは、HomebrewがPostgreSQLをインストールするための推奨される最も簡単な方法です。

  1. Homebrewのインストール(まだの場合):

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    

    画面の指示に従い、HomebrewをPATHに追加することを含めてください。

  2. PostgreSQLのインストール: Homebrewを使用してPostgreSQLをインストールします。バージョンを指定するか(例:postgresql@16)、デフォルトで最新の安定バージョンをインストールできます。

    brew install postgresql
    
  3. PostgreSQLサービスの開始: HomebrewはPostgreSQLをバックグラウンドサービスとしてインストールします。

    brew services start postgresql
    

    停止するには: brew services stop postgresql 再起動するには: brew services restart postgresql

  4. インストールの確認: psqlが利用可能で接続できるか確認します。

    psql -V
    

    デフォルトデータベースに接続するには:

    psql postgres
    

    ヒント: 視覚的なアプリベースのエクスペリエンスには、Postgres.appを検討してください。これは、コマンドラインを使わずにPostgreSQLを実行および管理するための簡単な方法を提供します。

Windowsへのインストール

Windowsの場合、EnterpriseDB(EDB)のグラフィカルインストーラーが、ローカルPostgreSQLセットアップの最も一般的な方法です。

  1. インストーラーのダウンロード: 公式PostgreSQLダウンロードページ(www.postgresql.org/download/windows/)にアクセスし、お使いのWindowsバージョン用の最新のEDBインストーラーをダウンロードします。

  2. インストーラーの実行: ダウンロードした.exeファイルを実行します。インストーラーウィザードがプロセスをガイドします。

    • インストールディレクトリ: PostgreSQLをインストールする場所を選択します(例:C:\Program Files\PostgreSQL\16)。
    • データディレクトリ: データベースファイルの場所を選択します(例:C:\Program Files\PostgreSQL\16\data)。これは重要であり、理想的には高速で信頼性の高いディスク上にあるべきです。
    • postgresスーパーユーザーのパスワード: デフォルトのpostgresデータベーススーパーユーザーに強力なパスワードを設定します。最初に接続するために必要になるため、このパスワードを覚えておいてください
    • ポート: デフォルトのPostgreSQLポートは5432です。競合がない限り、デフォルトのままにしておくのが一般的に安全です。
    • ロケール: データベースクラスターのデフォルトロケールを選択します。
  3. スタックビルダー: インストール後、EDBインストーラーがスタックビルダーを起動する場合があります。このツールは、追加のドライバー、ツール、拡張機能(pgAdmin 4など)のインストールに役立ちます。データベースを管理するためのグラフィカルインターフェースとして、pgAdmin 4をインストールすることを強くお勧めします。

  4. インストールの確認: インストール後、pgAdmin 4(通常はスタートメニューの「PostgreSQL 16」などにあります)を開き、設定したpostgresスーパーユーザーとパスワードを使用してローカルサーバーに接続してみてください。

初期構成とインストール後の手順

PostgreSQLがインストールされたら、これらの手順は機能的な安全なセットアップのために不可欠です。

1. PATH環境変数の設定(オプション、主にpsqlが見つからない場合のWindows/macOS用)

任意のターミナルロケーションからpsqlやその他のPostgreSQLバイナリを簡単に実行するには、PostgreSQLのbinディレクトリをシステムのPATHに追加します。

  • Linux: 多くの場合、パッケージマネージャーによって処理されますが、そうでない場合は、/usr/pgsql-X.Y/bin(RHEL)または/usr/lib/postgresql/X.Y/bin(Debian/Ubuntu)をPATHに追加します。
  • macOS(Homebrew): brewが自動的に処理します。
  • Windows: EDBインストール中に、PATHに追加するオプションがあります。選択しなかった場合は、システムのプロパティ > 環境変数から手動でC:\Program Files\PostgreSQL\16\bin(バージョンを調整)を追加できます。

2. psqlターミナルへのアクセス

psqlはPostgreSQLのコマンドラインインターフェースであり、管理とクエリに不可欠です。

  • Linux/macOS: postgresシステムユーザー(インストール中に作成)に切り替えます。

    sudo -i -u postgres
    psql
    

    これで、postgresユーザーとしてpostgresデータベースに接続されました。\qと入力して終了します。

  • Windows: スタートメニューからSQL Shell (psql)を開きます(PostgreSQL 16 > SQL Shell (psql))。サーバーの詳細とpostgresユーザーのパスワードを求められます。

3. 新しいデータベースユーザーとデータベースの作成

日常のアプリケーション使用にpostgresスーパーユーザーを使用しないことがベストプラクティスです。新しい専用ユーザーとデータベースを作成します。

  1. postgresスーパーユーザーとしてログインします(上記の通り)。

  2. 新しいユーザー(ロール)を作成します:

    CREATE USER myuser WITH PASSWORD 'strong_password';
    

    ヒント: myuserstrong_passwordを安全な資格情報に置き換えてください。

  3. 新しいデータベースを作成し、所有権を割り当てます:

    CREATE DATABASE mydatabase OWNER myuser;
    
  4. 権限を付与します(必要に応じて、またはCREATE DATABASEの所有者が基本的な操作のためにこれを処理します):

    GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;
    
  5. psqlを終了します:

    \q
    

4. ネットワークアクセスのためのpg_hba.confの構成

pg_hba.confファイルはクライアント認証を制御します。デフォルトでは、PostgreSQLはlocalhost(127.0.0.1)からの接続のみを許可する場合があります。

  • 場所: このファイルは通常、PostgreSQLデータディレクトリにあります(例:Debian/Ubuntuでは/var/lib/postgresql/16/main/pg_hba.conf、RHELでは/var/lib/pgsql/16/data/pg_hba.conf、WindowsではC:\Program Files\PostgreSQL\16\data\pg_hba.conf)。

  • ファイルを編集します(root/管理者として):

    sudo nano /etc/postgresql/16/main/pg_hba.conf
    

    (お使いのOSとバージョンに合わせてパスを調整してください)。

    信頼できるサブネットからパスワード認証を使用してmyuserが接続できるようにするには、次のような行を追加します:

    # TYPE DATABASE  USER            ADDRESS                 METHOD
    host  mydatabase  myuser          192.168.1.0/24          scram-sha-256
    

    scram-sha-256は、最新のPostgreSQLデプロイメントで推奨されるパスワード方式です。サーバーが厳格なファイアウォールルールでも保護されておらず、本当に広範なアクセスが必要でない限り、0.0.0.0/0は避けてください。

  • PostgreSQLをリロードします: pg_hba.confを変更した後、変更を有効にするためにPostgreSQLサービスをリロードする必要があります

    sudo systemctl reload postgresql # Linux
    # macOSでHomebrewの場合:
    # brew services restart postgresql
    # Windowsの場合、Services.mscを介してPostgreSQLサービスを再起動します
    

5. postgresql.confの構成(ネットワークリスニング)

デフォルトでは、PostgreSQLは多くの場合localhostのみをリッスンします。他のマシンからの接続を受け入れるには、postgresql.confを変更する必要があります。

  • 場所: このファイルは通常、pg_hba.confと同じディレクトリにあります。

  • ファイルを編集します:

    sudo nano /etc/postgresql/16/main/postgresql.conf
    

    listen_addressesパラメーターを見つけ、リモートクライアントが接続する必要がある場合にのみ変更します:

    #listen_addresses = 'localhost' # what IP address(es) to listen on;
    listen_addresses = 'localhost,192.168.1.10'
    

    192.168.1.10の代わりにサーバーの実際のプライベートIPアドレスを使用してください。listen_addresses = '*'も機能しますが、制限的なpg_hba.confとファイアウォールルールと組み合わせる必要があります。

  • PostgreSQLを再起動します: postgresql.confへの変更には、完全なサービスの再起動が必要です。

    sudo systemctl restart postgresql # Linux
    # brew services restart postgresql # macOS
    # Windowsの場合、Services.mscを介してPostgreSQLサービスを再起動します
    

インストールの確認

すべての構成が完了したら、最終確認を実行します:

  1. PostgreSQLサービスのステータスを確認します(systemctl status postgresqlまたはbrew services list、またはWindowsサービス)。

  2. 新しいユーザーとして新しいデータベースに接続します:

    psql -h localhost -U myuser -d mydatabase
    

    myuserのパスワードを求められます。成功すると、mydatabase=>プロンプトが表示されます。\qと入力して終了します。

    別のマシンから接続する場合は、localhostをサーバーのIPアドレスに置き換えてください。

ヒントとベストプラクティス

  • 強力なパスワード: すべてのデータベースユーザー、特にpostgresスーパーユーザーには、常に強力で一意のパスワードを使用してください。
  • 専用データディレクトリ: 本番環境では、パフォーマンスと信頼性のために、データディレクトリを専用のボリュームまたはRAIDアレイに配置することを検討してください。
  • 定期的なバックアップ: 初日から堅牢なバックアップ戦略を実装してください。PostgreSQLのpg_dumpおよびpg_basebackupユーティリティは、これに優れたツールです。
  • 最新の状態を保つ: バグ修正、セキュリティパッチ、新機能の恩恵を受けるために、PostgreSQLインストールを最新の状態に保ってください。システムのパッケージマネージャーを使用するか、EDBインストーラーの更新プロセスに従ってください。
  • ファイアウォールの構成: リモート接続を許可する場合は、システムのファイアウォール(例:ufwfirewalld、Windowsファイアウォール)がポート5432(または選択したポート)でのインバウンドトラフィックを許可するように構成されていることを確認してください。

まとめ

PostgreSQLがインストールされたら、サービスを確認し、psqlで接続し、アプリケーションロールを作成し、リモートアクセスを制限してください。本番環境では、データベースが重要なデータを保持し始める前に、次のステップとしてバックアップと監視を行う必要があります。