PostgreSQL

PostgreSQLの環境構築と接続

サーバーを用意し、psqlで練習用データベースへ接続します。

PostgreSQL入門の講座一覧

01

PostgreSQLをインストールする

Linuxのパッケージ、Windows・macOS向けインストーラー、Dockerなど複数の方法があります。学習中は一つの方法に絞り、複数のサーバーが同じ5432番ポートを使わないようにします。

準備するもの
  • PostgreSQLサーバーとクライアント(psql)
  • 練習用の管理ユーザーまたはロール
  • 削除しても困らない練習用データベース

公式のインストール方法はPostgreSQL公式ダウンロード案内で、OSに合う手順を選んでください。

02

psqlで接続する

-hはホスト、-pはポート、-Uはロール、-dはデータベースです。

接続コマンドCOMMAND
psql -h 127.0.0.1 -p 5432 -U postgres -d postgres
接続後の表示例OUTPUT
Password for user postgres:
psql (17.x)
postgres=#

\qで終了します。SQL文はセミコロンで終わり、psqlのメタコマンドは\から始まります。

03

ロールとデータベースを作る

PostgreSQLでは、ログインできるロールとデータベースを分けて管理します。アプリケーションへ管理者ロールを渡さず、用途ごとのロールを作ります。

練習用ロールとDBSQL
CREATE ROLE study_user LOGIN PASSWORD 'change-this-password';
CREATE DATABASE study_postgres OWNER study_user;
\c study_postgres study_user
確認結果の例OUTPUT
You are now connected to database "study_postgres" as user "study_user".
study_postgres=>
パスワードをそのまま使わない この例は学習用です。実際の環境では強い秘密情報を安全に管理し、SQLファイルやリポジトリへ残しません。
04

スキーマを確認する

スキーマはデータベース内の名前空間です。初期状態ではpublicスキーマがよく使われます。テーブル名が同じでもスキーマが違えば別のオブジェクトとして管理できます。

psqlで確認するPSQL
\dn
\dt
SELECT current_schema();
実行結果の例OUTPUT
  Name   | Owner
---------+------------
 public  | study_user

 current_schema
----------------
 public
05

接続できないとき

  • PostgreSQLサービスが起動しているか確認する
  • 5432以外のポートを使っていないか確認する
  • ホスト、ロール、DB名を分けて確認する
  • pg_hba.confやファイアウォールを管理者に確認する
接続拒否の例OUTPUT
psql: error: connection to server at "127.0.0.1", port 5432 failed:
Connection refused