PostgreSQL インストール:包括的なステップバイステップガイド
PostgreSQL(しばしばPostgresと呼ばれる)は、現在利用可能な、最も高度で広く尊敬されているオープンソースのリレーショナルデータベース管理システム(RDBMS)の1つです。その実績のあるアーキテクチャ、信頼性、データの整合性、堅牢な機能セット、およびパフォーマンスで知られており、小規模な個人プロジェクトから大規模なエンタープライズアプリケーションまで、あらゆるものに選ばれています。SQL標準への準拠と広範な拡張性により、開発者とデータ専門家の両方にとって強力で柔軟なツールとなっています。
PostgreSQLを正常にインストールすることは、その機能を活用するための最初の重要なステップです。プロセスはオペレーティングシステムによって若干異なる場合がありますが、このガイドでは、初期セットアップ、必須の構成、および重要なインストール後のステップを網羅する包括的なステップバイステップのウォークスルーを提供します。これらの指示に従うことで、開発とデプロイメントの準備ができた、スムーズで安全なPostgreSQL環境を確保できます。
前提条件
インストールプロセスを開始する前に、システムがこれらの基本的な要件を満たしていることを確認してください。
- 管理者権限: ソフトウェアのインストールとシステムサービスの構成には、Linux/macOSでの
sudo権限、またはWindowsでの管理者権限が必要です。 - インターネット接続: インストールパッケージのダウンロードに必要です。
- 十分なディスク容量: 初期インストールは比較的少量ですが、データベースは成長します。データのために十分なディスク容量があることを確認してください。
Linuxへのインストール
Linuxディストリビューションは通常、デフォルトのパッケージリポジトリを通じてPostgreSQLを提供しているため、インストールは簡単です。
Debian/Ubuntu
UbuntuのようなDebianベースのシステムでは、aptを使用してPostgreSQLをインストールできます。
- パッケージリストの更新: 最新のパッケージを入手するために、常にパッケージマネージャーのリストを更新することから始めます。
bash sudo apt update -
PostgreSQLのインストール: サーバー、クライアントユーティリティ、およびドキュメントをしばしば含む
postgresqlパッケージをインストールします。バージョンを指定する(例:postgresql-16)か、単にpostgresqlを使用してデフォルトバージョンをインストールできます。
bash sudo apt install postgresql postgresql-contrib
postgresql-contribパッケージは、追加のユーティリティと機能を提供します。注: Debian/Ubuntuでは、PostgreSQLサービスは通常インストール後に自動的に開始され、デフォルトの
postgresユーザー(システムユーザーとデータベースユーザーの両方)が作成されます。 -
インストールの検証: サービスの状態を確認します。
bash sudo systemctl status postgresql
active (exited)またはactive (running)を示す出力が表示されるはずです。メインサービスユニットが複数のクラスタを管理し、それらが別々のプロセスとして実行されている場合、exitedは正常です。
RHEL/CentOS/Fedora
Red Hatベースのシステムでは、dnf(または古いCentOS/RHELバージョンではyum)を使用します。
- PostgreSQLリポジトリのインストール: PostgreSQLは、OSのデフォルトリポジトリで利用可能なバージョンよりも新しいバージョンのための独自のリポジトリを提供しています。最新の安定版リリースには、これを使用することをお勧めします。
bash 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バージョンとアーキテクチャに置き換えてください。 - デフォルトのPostgreSQLモジュールの無効化(該当する場合): 一部のRHEL/CentOSバージョンには、デフォルトのPostgreSQLモジュールがあります。PGDGリポジトリとの競合を避けるために、これを無効にします。
bash sudo dnf -qy module disable postgresql - PostgreSQLのインストール: サーバーとcontribパッケージをインストールします。
16を目的のバージョンに置き換えてください。
bash sudo dnf install -y postgresql16-server postgresql16-contrib -
データベースクラスタの初期化: Debian/Ubuntuとは異なり、RHELベースのシステムでは、データベースクラスタを手動で初期化する必要があることがよくあります。
bash sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
インストールされているバージョンに応じて、パス/usr/pgsql-16/binとpostgresql-16-setupを調整してください。 -
PostgreSQLサービスの開始と有効化: サービスを開始し、起動時に起動するように構成します。
bash sudo systemctl enable postgresql-16 sudo systemctl start postgresql-16 - インストールの検証: サービスの状態を確認します。
bash sudo systemctl status postgresql-16
macOSへのインストール
macOSでは、HomebrewがPostgreSQLをインストールするための推奨される最も簡単な方法です。
-
Homebrewのインストール(まだインストールしていない場合):
bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
画面の指示に従ってください。これには、HomebrewをPATHに追加することも含まれます。 -
PostgreSQLのインストール: Homebrewを使用してPostgreSQLをインストールします。バージョンを指定する(例:
postgresql@16)か、デフォルトで最新の安定版をインストールできます。
bash brew install postgresql -
PostgreSQLサービスの開始: HomebrewはPostgreSQLをバックグラウンドサービスとしてインストールします。
bash brew services start postgresql
停止するには:brew services stop postgresql
再起動するには:brew services restart postgresql -
インストールの検証:
psqlが利用可能で接続できるか確認します。
bash psql -V
デフォルトデータベースに接続するには:
bash psql postgresヒント: 視覚的なアプリベースの体験を求める場合は、Postgres.appを検討してください。これにより、コマンドラインなしでPostgreSQLを実行および管理する簡単な方法が提供されます。
Windowsへのインストール
Windowsでは、EnterpriseDB(EDB)のグラフィカルインストーラーが最も一般的で推奨される方法です。
-
インストーラーのダウンロード: 公式のPostgreSQLダウンロードページ(www.postgresql.org/download/windows/)にアクセスし、Windowsバージョン用の最新のEDBインストーラーをダウンロードします。
-
インストーラーの実行: ダウンロードした
.exeファイルを実行します。インストーラーウィザードがプロセスを案内します。- インストールディレクトリ: PostgreSQLをインストールする場所を選択します(例:
C:\Program Files\PostgreSQL\16)。 - データディレクトリ: データベースファイルの場所を選択します(例:
C:\Program Files\PostgreSQL\16\data)。これは重要であり、理想的には高速で信頼性の高いディスクに配置する必要があります。 postgresスーパーユーザーのパスワード: デフォルトのpostgresデータベーススーパーユーザーの強力なパスワードを設定します。最初に接続する必要があるため、このパスワードを覚えておいてください。- ポート: デフォルトのPostgreSQLポートは
5432です。競合がない限り、通常はデフォルトのままにしておくのが安全です。 - ロケール: データベースクラスタのデフォルトロケールを選択します。
- インストールディレクトリ: PostgreSQLをインストールする場所を選択します(例:
-
Stack Builder: インストール後、EDBインストーラーはStack Builderを起動することがあります。このツールは、追加のドライバー、ツール、および拡張機能(
pgAdmin 4など)のインストールに役立ちます。データベースを管理するためのグラフィカルインターフェイスとして、pgAdmin 4をインストールすることを強くお勧めします。 -
インストールの検証: インストール後、
pgAdmin 4(通常はスタートメニューの「PostgreSQL 16」などで見つかります)を開き、postgresスーパーユーザーと設定したパスワードを使用してローカルサーバーに接続しようとすることができます。
初期構成とインストール後のステップ
PostgreSQLがインストールされたら、これらのステップは機能的で安全なセットアップに不可欠です。
1. PATH環境変数の設定(オプション、主にpsqlが見つからないWindows/macOS向け)
任意のターミナル場所からpsqlおよびその他のPostgreSQLバイナリを簡単に実行するには、PostgreSQLのbinディレクトリをシステムのPATHに追加します。
- Linux: 通常はパッケージマネージャーによって処理されますが、そうでない場合は、
PATHに/usr/pgsql-X.Y/bin(RHEL)または/usr/lib/postgresql/X.Y/bin(Debian/Ubuntu)を追加します。 - macOS (Homebrew):
brewがこれを自動的に処理します。 - Windows: EDBインストールの際、
PATHに追加するオプションがあります。選択しなかった場合は、システムプロパティ > 環境変数を介して、C:\Program Files\PostgreSQL\16\bin(バージョンを調整)を手動で追加できます。
2. psqlターミナルへのアクセス
psqlはPostgreSQLのコマンドラインインターフェイスであり、管理とクエリに不可欠です。
-
Linux/macOS:
postgresシステムユーザー(インストール中に作成された)に切り替えます。
bash sudo -i -u postgres psql
これで、postgresユーザーとしてpostgresデータベースに接続されました。終了するには\qと入力します。 -
Windows: スタートメニュー(「PostgreSQL 16」など)から
SQL Shell (psql)を開きます。サーバーの詳細とpostgresユーザーのパスワードを求められます。
3. 新しいデータベースユーザーとデータベースの作成
日常のアプリケーション使用にpostgresスーパーユーザーを使用しないのがベストプラクティスです。専用の新しいユーザーとデータベースを作成します。
postgresスーパーユーザーとしてログイン(上記のように)。-
新しいユーザー(ロール)の作成:
sql CREATE USER myuser WITH PASSWORD 'strong_password';
ヒント:myuserとstrong_passwordを安全な認証情報に置き換えてください。 -
新しいデータベースを作成し、所有権を割り当てる:
sql CREATE DATABASE mydatabase OWNER myuser; - 権限の付与(必要な場合、または
CREATE DATABASEの所有者が基本的な操作を処理します):
sql GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser; psqlを終了:
sql \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/管理者として):
bash sudo nano /etc/postgresql/16/main/pg_hba.conf
(OSとバージョンに合わせてパスを調整してください)。myuserが任意のIPアドレスからパスワード認証を使用して接続できるようにするには、次のような行を追加します。
```TYPE DATABASE USER ADDRESS METHOD
host mydatabase myuser 0.0.0.0/0 md5
``md5はパスワード認証を意味します。0.0.0.0/0は任意のIPアドレスを意味します。セキュリティを強化するため、特定のIP範囲(例:192.168.1.0/24`)を指定してください。 -
PostgreSQLの再読み込み:
pg_hba.confを変更した後、変更を有効にするには、PostgreSQLサービスを再読み込みする必要があります。
bash 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と同じディレクトリにあります。 -
ファイルを編集:
bash sudo nano /etc/postgresql/16/main/postgresql.conflisten_addressesパラメータを見つけて変更します。
```listen_addresses = 'localhost' # what IP address(es) to listen on;
listen_addresses = '*' # Listen on all available network interfaces
```
または、いくつかのみでリッスンしたい場合は、特定のIPアドレスを指定します。 -
PostgreSQLの再起動:
postgresql.confへの変更には、完全なサービス再起動が必要です。
bash sudo systemctl restart postgresql # Linux # brew services restart postgresql # macOS # Windowsの場合、Services.msc経由でPostgreSQLサービスを再起動してください
インストールの検証
すべての構成が完了したら、最終検証を実行します。
- PostgreSQLサービスの状態を確認(
systemctl status postgresqlまたはbrew services listまたはWindowsサービス)。 -
新しいユーザーとして新しいデータベースに接続:
bash psql -h localhost -U myuser -d mydatabase
myuserのパスワードを求められます。成功すると、mydatabase=>プロンプトが表示されます。終了するには\qと入力します。別のマシンから接続する場合は、
localhostをサーバーのIPアドレスに置き換えてください。
ヒントとベストプラクティス
- 強力なパスワード: すべてのデータベースユーザー、特に
postgresスーパーユーザーには、常に強力でユニークなパスワードを使用してください。 - 専用データディレクトリ: 本番環境では、パフォーマンスと信頼性のために、データディレクトリを専用ボリュームまたはRAIDアレイに配置することを検討してください。
- 定期的なバックアップ: 初日から堅牢なバックアップ戦略を実装してください。PostgreSQLの
pg_dumpおよびpg_basebackupユーティリティは、このための優れたツールです。 - 最新の状態を保つ: バグ修正、セキュリティパッチ、新機能の恩恵を受けるために、PostgreSQLのインストールを最新の状態に保ってください。システムパッケージマネージャーを使用するか、EDBインストーラーの更新プロセスに従ってください。
- ファイアウォール設定: リモート接続を許可する場合は、システムファイアウォール(例:
ufw、firewalld、Windowsファイアウォール)がポート5432(または選択したポート)への着信トラフィックを許可するように構成されていることを確認してください。
結論
これで、選択したオペレーティングシステムにPostgreSQLを正常にインストールし、必須の初期構成を実行しました。この包括的なガイドでは、Linux、macOS、Windowsのプラットフォーム固有の手順、およびユーザーとデータベースの作成、ネットワークアクセスの構成といった重要なインストール後のタスクについて説明しました。PostgreSQLをセットアップして実行することで、堅牢なデータ駆動型アプリケーションの構築を開始する準備が整いました。次のステップとしては、より高度なデータベース管理について学ぶこと、pgAdmin 4(Windows/macOSの場合)を探索すること、または好みのプログラミング言語とそのPostgreSQLドライバーを使用したアプリケーション開発に深く入り込むことが考えられます。
PostgreSQLのパワーを活用してください – 高度なデータ管理への旅が今始まったばかりです!