PostgreSQLのインストールと初期設定ガイド
PostgreSQLは、その堅牢性、豊富な機能、高いパフォーマンスで広く利用されているオープンソースのリレーショナルデータベース管理システム(RDBMS)です。このガイドでは、主要なOSへのPostgreSQLのインストール方法と、基本的な初期設定について詳しく解説します。
1. PostgreSQLのインストール
お使いのオペレーティングシステムに応じて、以下の手順でインストールを進めてください。
1.1. Windows
Windowsでは、EnterpriseDBが提供する公式インストーラーを使用するのが最も簡単で確実です。
インストーラーのダウンロード: PostgreSQL公式サイトのダウンロードページにアクセスし、お使いのWindowsのバージョンに対応したインストーラーをダウンロードします。
インストーラーの実行: ダウンロードした
.exeファイルを実行し、セットアップウィザードを開始します。セットアップウィザード:
- Installation Directory: インストール先のディレクトリを選択します(通常はデフォルトのままで問題ありません)。
- Select Components: インストールするコンポーネントを選択します。基本的には「PostgreSQL Server」「pgAdmin 4」「Command Line Tools」の3つは必ず選択してください。
- Data Directory: データベースのデータを保存するディレクトリを選択します。
- Password: スーパーユーザー
postgresのパスワードを設定します。このパスワードは非常に重要なので、必ず安全な場所に保管してください。 - Port: PostgreSQLサーバーが使用するポート番号を設定します(デフォルトは
5432です)。 - Locale: ロケール(言語や地域設定)を選択します。通常は
Default localeで問題ありません。
インストール完了: 設定内容を確認し、インストールを実行します。完了後、追加ツールをインストールするためのStack Builderを起動するか尋ねられますが、必要なければチェックを外して完了して構いません。
1.2. macOS
macOSでは、パッケージマネージャーであるHomebrewを使用する方法が最も一般的で推奨されます。
Homebrewのインストール (未導入の場合): ターミナルを開き、以下のコマンドを実行してHomebrewをインストールします。
bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"PostgreSQLのインストール: Homebrewを使ってPostgreSQLをインストールします。
bashbrew install postgresqlPostgreSQLサービスの起動: インストール後、以下のコマンドでPostgreSQLサービスを起動し、システム起動時に自動で立ち上がるように設定します。
bashbrew services start postgresql手動で起動・停止したい場合は、以下のコマンドを使用します。
bash# 起動 pg_ctl -D /opt/homebrew/var/postgresql start # 停止 pg_ctl -D /opt/homebrew/var/postgresql stopHomebrewのインストールパスは環境によって異なる場合があります。
brew --prefix postgresqlで確認できます。
1.3. Linux (Ubuntu)
Ubuntuではaptパッケージマネージャーを使用します。公式のPostgreSQLリポジトリを追加することで、常に最新の安定版をインストールできます。
PostgreSQLリポジトリの追加:
bash# GPGキーをインポート sudo apt-get install curl ca-certificates gnupg curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null # リポジトリを追加 sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'PostgreSQLのインストール: リポジトリを追加したら、パッケージリストを更新してPostgreSQLをインストールします。
bashsudo apt-get update sudo apt-get -y install postgresqlインストールの確認: サービスが正常に起動しているか確認します。
bashsudo systemctl status postgresqlactive (running)と表示されていれば成功です。
2. 初期設定
インストールが完了したら、データベースを使用するための基本的な設定を行います。
2.1. psqlへの接続
psqlはPostgreSQLの強力なコマンドラインインターフェースです。まず、スーパーユーザーpostgresとして接続します。
- Windows: スタートメニューから「SQL Shell (psql)」を起動します。サーバー、データベース、ポート、ユーザー名を尋ねられますが、すべてデフォルトのままEnterキーを押し、インストール時に設定したパスワードを入力します。
- macOS (Homebrew): ターミナルで
psql postgresと入力します。 - Linux (Ubuntu):
postgresシステムユーザーに切り替えてからpsqlを実行します。bashsudo -i -u postgres psql
postgres=#というプロンプトが表示されれば、正常に接続できています。
2.2. 新しいロール(ユーザー)とデータベースの作成
セキュリティの観点から、スーパーユーザーpostgresを日常的に使用するのは避けるべきです。アプリケーション用や開発用に新しいロール(ユーザー)とデータベースを作成しましょう。
新しいロールの作成:
psql内で、以下のSQLコマンドを実行します。myuserとmypasswordは任意の名前に変更してください。sqlCREATE ROLE myuser WITH LOGIN PASSWORD 'mypassword';CREATEDB権限を付与すると、このユーザーは新しいデータベースを作成できるようになります。sqlALTER ROLE myuser CREATEDB;新しいデータベースの作成: 作成したユーザーを所有者として、新しいデータベースを作成します。
sqlCREATE DATABASE mydatabase OWNER myuser;
2.3. 作成したデータベースへの接続
psql内で、作成したデータベースに新しいユーザーで接続してみましょう。
データベースへの接続:
\cまたは\connectコマンドを使用します。sql\c mydatabase myuserパスワードを求められたら、
myuserに設定したパスワードを入力します。 プロンプトがmydatabase=>のように変われば接続成功です。psqlの終了:
\qコマンドでpsqlを終了します。
3. pg_hba.confによる接続制御(応用)
pg_hba.conf(Host-Based Authentication)ファイルは、どのユーザーがどのデータベースに、どのIPアドレスから、どの認証方法で接続できるかを定義する重要な設定ファイルです。
ファイルの場所:
- Ubuntu:
/etc/postgresql/XX/main/pg_hba.conf - macOS (Homebrew):
$(brew --prefix postgresql)/data/pg_hba.conf psql内でSHOW hba_file;を実行すると正確なパスを確認できます。
- Ubuntu:
設定例: デフォルトでは、ローカルからの
peer認証(OSユーザー名とDBユーザー名が同じなら許可)やmd5(パスワード認証)が設定されています。 例えば、開発環境で同一ネットワーク内の他のマシンからの接続を許可したい場合は、以下のような行を追加します。# TYPE DATABASE USER ADDRESS METHOD host mydatabase myuser 192.168.1.0/24 md5この設定は、「192.168.1.xのIPアドレスから
myuserがmydatabaseに接続する際は、md5で暗号化されたパスワード認証を要求する」という意味です。
ファイルを変更した後は、必ずPostgreSQLサーバーを再起動して設定を反映させてください。
# Ubuntuの場合
sudo systemctl restart postgresql
# macOS (Homebrew)の場合
brew services restart postgresqlこれで、PostgreSQLのインストールと基本的なセットアップは完了です。快適なデータベースライフを始めましょう!