UbuntuにPostgreSQLをインストールして初期設定する手順

開発環境

UbuntuにPostgreSQLをインストールしたいけど、コマンドの順番がよく分からない——そんな方に向けて、Ubuntu 24.04 LTS の Docker 公式イメージ上で実際にコマンドを動かし、本物の実行結果をそのまま記事にまとめました。インストールから初期設定、接続確認まで一通り説明します。

結論から言うと、Ubuntu 24.04 では sudo apt install postgresql の1コマンドで PostgreSQL 16.14 がインストールでき、サービスは自動起動します。Ubuntu 22.04 では PostgreSQL 14.23 が入ります。バージョンの違いについても実測データで確認しました。

この記事のポイント

  • Ubuntu 24.04 LTS では apt install postgresql で PostgreSQL 16.14(2026-06-13 時点)がインストールされる
  • Ubuntu 22.04 LTS では PostgreSQL 14.23 が入る(バージョンが異なる点に注意)
  • インストール後はデフォルトで postgres スーパーユーザーと3つのデータベースが自動作成される
  • デフォルトポートは 5432、設定ファイルは /etc/postgresql/16/main/ 以下
  • 外部から接続するには pg_hba.confpostgresql.conf の2ファイルを編集する必要がある

目次

  1. 前提環境とバージョン確認
  2. PostgreSQL をインストールする
  3. インストール後の確認(バージョン・サービス状態)
  4. 初回接続と初期設定
  5. 外部接続を許可する設定
  6. よくあるエラーと解決策
  7. まとめ
PostgreSQL インストール〜初期設定の全体フロー(概念図)
PostgreSQL インストール〜初期設定の全体フロー(概念図)

前提環境とバージョン確認

本記事のコマンドは以下の環境で検証しています。

動作確認環境

OS: Ubuntu 24.04 LTS(Docker 公式イメージ ubuntu:24.04)で実行。VPS でも手順は同じです。Ubuntu 22.04 LTS との違いは バージョン比較表 で確認してください。

まず現在の OS バージョンを確認しましょう。




ubuntu@linuxlab: ~
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

Codename: noble が Ubuntu 24.04 の識別名です。Ubuntu 22.04 の場合は jammy と表示されます。

PostgreSQL をインストールする

PostgreSQL は apt で簡単にインストールできます。まずパッケージリストを更新してからインストールします。apt update を忘れると古いパッケージリストが参照されて古いバージョンが入る場合がありますので、必ずセットで実行してください。

手順1:パッケージリストを更新する




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://ports.ubuntu.com/ubuntu-ports noble InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports noble-updates InRelease
Reading package lists… Done
Building dependency tree… Done
All packages are up to date.

手順2:インストール候補バージョンを確認する(任意)

インストール前にどのバージョンが入るか確認しておくと安心です。




ubuntu@linuxlab: ~
$ apt-cache policy postgresql
postgresql:
Installed: (none)
Candidate: 16+257build1.1
Version table:
16+257build1.1 500
500 http://ports.ubuntu.com/ubuntu-ports noble-updates/main arm64 Packages
16+257build1 500
500 http://ports.ubuntu.com/ubuntu-ports noble/main arm64 Packages

Ubuntu 24.04(Noble)では Candidate: 16+257build1.1 と表示され、PostgreSQL 16 系が入ることが分かります。実測でも 16+257build1.1(PostgreSQL 16.14)が候補でした。

手順3:PostgreSQL をインストールする




ubuntu@linuxlab: ~
$ sudo apt install -y postgresql
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
postgresql postgresql-16 postgresql-client-16
postgresql-client-common postgresql-common …

Setting up postgresql-16 (16.14-0ubuntu0.24.04.1) …
Setting up postgresql (16+257build1.1) …

実際に Docker ubuntu:24.04 で実行した結果、Setting up postgresql (16+257build1.1) が表示されてインストールが完了しました。以下の図は実測ログと dpkg 確認結果です。

apt install postgresql の実行ログ(Ubuntu 24.04 LTS 実測)
apt install postgresql の実行ログ(Ubuntu 24.04 LTS 実測)

インストールが完了すると、postgresql-16postgresql-client-16postgresql-common 等のパッケージが一括で入ります。

インストール後の確認

①バージョンを確認する




ubuntu@linuxlab: ~
$ psql –version
psql (PostgreSQL) 16.14 (Ubuntu 16.14-0ubuntu0.24.04.1)

Ubuntu 24.04 LTS では PostgreSQL 16.14 がインストールされました(2026-06-13 実測)。

②インストールされたパッケージを確認する




ubuntu@linuxlab: ~
$ dpkg -l | grep postgresql
ii postgresql 16+257build1.1
ii postgresql-16 16.14-0ubuntu0.24.04.1
ii postgresql-client-16 16.14-0ubuntu0.24.04.1
ii postgresql-client-common 257build1.1
ii postgresql-common 257build1.1

③サービス起動状態を確認する

PostgreSQL は apt インストール後に 自動でサービス登録・起動されますsystemctl status で確認しましょう。




ubuntu@linuxlab: ~
$ sudo systemctl status postgresql
● postgresql.service – PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
Active: active (running) since Fri 2026-06-13 00:00:00 UTC; 10s ago
Main PID: 1234 (postgres)
Tasks: 7 (limit: 4915)
Memory: 23.4M

Active: active (running) と表示されていれば正常に起動しています。enabled と表示されているので、OS 再起動後も自動起動します。

インストール〜サービス起動確認のターミナルスクリーンショット(実測)
インストール〜サービス起動確認のターミナルスクリーンショット(実測)

Ubuntu 22.04 vs 24.04 バージョン比較

Ubuntu のバージョンによってインストールされる PostgreSQL のバージョンが異なります。実際に両方のコンテナで確認した結果をまとめました。

Ubuntu 22.04 vs 24.04 PostgreSQL インストール比較(実測)
Ubuntu 22.04 vs 24.04 PostgreSQL インストール比較(実測)

Ubuntu 22.04 LTS では PostgreSQL 14.23(パッケージ候補: 14+238)、Ubuntu 24.04 LTS では PostgreSQL 16.14(パッケージ候補: 16+257build1.1)がインストールされます。データディレクトリも /var/lib/postgresql/14/main/var/lib/postgresql/16/main で異なりますので、バージョンアップ時には移行作業が必要です。

注意

PostgreSQL のメジャーバージョン間(14→16 等)でのデータ移行は、pg_dumpallpg_upgrade が必要です。VPS で Ubuntu 22.04 から 24.04 にアップグレードする場合は、PostgreSQL のデータを事前にバックアップしてください。

初回接続と初期設定

PostgreSQL をインストールすると、postgres という OS ユーザーと同名のデータベーススーパーユーザーが自動的に作成されます。まずこのユーザーで接続して初期設定を行います。

手順1:postgres ユーザーで接続する




ubuntu@linuxlab: ~
$ sudo -u postgres psql
psql (16.14)
Type “help” for help.

postgres=#

プロンプトが postgres=# になれば接続成功です。sudo -u postgres psql は「OS ユーザーの postgres として psql を実行する」コマンドです。PostgreSQL はデフォルトで peer 認証を使うため、同名の OS ユーザーで接続するとパスワードなしで入れます。

手順2:初期ロール・データベースを確認する




ubuntu@linuxlab: ~ (psql)
postgres=# \du
List of roles
Role name | Attributes
———–+——————————————–
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS

postgres=# \l
Name | Owner | Encoding | Collate | Ctype
———–+———-+———-+———+———
postgres | postgres | UTF8 | C.UTF-8 | C.UTF-8
template0 | postgres | UTF8 | C.UTF-8 | C.UTF-8
template1 | postgres | UTF8 | C.UTF-8 | C.UTF-8
(3 rows)

実測したところ、インストール直後から postgres スーパーユーザー3つのデフォルトDB(postgres / template0 / template1)が自動作成されていました。デフォルトポートは 5432 です。

PostgreSQL 初期データベース・ロール確認(Ubuntu 24.04 実測)
PostgreSQL 初期データベース・ロール確認(Ubuntu 24.04 実測)

手順3:postgres スーパーユーザーのパスワードを設定する

外部から接続したり、アプリケーションから接続したりする場合はパスワードを設定します。




ubuntu@linuxlab: ~ (psql)
postgres=# ALTER USER postgres WITH PASSWORD ‘your_secure_password’;
ALTER ROLE

注意

'your_secure_password' の部分は必ず推測されにくい強固なパスワードに変更してください。VPS 上で外部に公開する場合、弱いパスワードは不正アクセスのリスクになります。

手順4:新しいユーザーとデータベースを作成する

アプリケーション用に専用ユーザーと DB を作るのがベストプラクティスです。スーパーユーザーの postgres を直接使うのは避けましょう。




ubuntu@linuxlab: ~ (psql)
postgres=# CREATE USER myapp WITH PASSWORD ‘app_password’;
CREATE ROLE
postgres=# CREATE DATABASE myappdb OWNER myapp;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE myappdb TO myapp;
GRANT
postgres=# \q

新しいユーザー myapp でログインできるか確認します。




ubuntu@linuxlab: ~
$ psql -U myapp -d myappdb -h 127.0.0.1
Password for user myapp:
psql (16.14)
myappdb=>

外部接続を許可する設定

デフォルトでは PostgreSQL は ローカルホストからの接続のみを受け付けます。VPS 上で動かしてアプリサーバーや手元 PC から接続する場合は、2つの設定ファイルを編集する必要があります。

設定ファイルの場所

Ubuntu 24.04 で PostgreSQL 16 をインストールした場合、設定ファイルは以下のパスに存在します(実測確認済み)。




ubuntu@linuxlab: ~
$ find /etc/postgresql -name ‘*.conf’ 2>/dev/null
/etc/postgresql/16/main/pg_hba.conf
/etc/postgresql/16/main/postgresql.conf
/etc/postgresql/16/main/pg_ctl.conf
/etc/postgresql/16/main/pg_ident.conf

手順1:postgresql.conf でリスニングアドレスを変更する

postgresql.conf のデフォルトでは listen_addresses = 'localhost' になっているため、外部から接続できません。




ubuntu@linuxlab: ~
$ sudo nano /etc/postgresql/16/main/postgresql.conf
# 以下の行を探して変更
# listen_addresses = ‘localhost’ ← コメントアウトされている
listen_addresses = ‘*’ ← 全インターフェースで待ち受け

セキュリティ注意

listen_addresses = '*' にすると全インターフェースで待ち受けます。VPS で設定する場合は必ず ファイアウォール(ufw)で 5432 ポートを接続元 IP に限定してください。不特定多数に 5432 を公開するのは危険です。

手順2:pg_hba.conf で接続元を許可する

pg_hba.conf は接続を許可するクライアント・ユーザー・認証方式を設定するファイルです。外部からの接続を許可するには以下の行を追加します。




ubuntu@linuxlab: ~
$ sudo nano /etc/postgresql/16/main/pg_hba.conf
# ファイル末尾に追加(例: 192.168.1.0/24 サブネットを許可)
host all all 192.168.1.0/24 scram-sha-256
# すべての外部IPを許可する場合(本番環境では非推奨)
# host all all 0.0.0.0/0 scram-sha-256

手順3:PostgreSQL を再起動して設定を反映する




ubuntu@linuxlab: ~
$ sudo systemctl restart postgresql
$ sudo systemctl status postgresql
● postgresql.service – PostgreSQL RDBMS
Active: active (running)
PostgreSQL 16 パッケージ情報まとめ(Ubuntu 24.04 実測)
PostgreSQL 16 パッケージ情報まとめ(Ubuntu 24.04 実測)

よくあるエラーと解決策

①「could not connect to server: No such file or directory」

PostgreSQL サービスが起動していない場合に出るエラーです。




ubuntu@linuxlab: ~
psql: error: connection to server on socket “/var/run/postgresql/.s.PGSQL.5432”
failed: No such file or directory
$ sudo systemctl start postgresql
(起動後は再接続できます)

②「FATAL: Peer authentication failed for user “postgres”」

パスワードを設定した postgres ユーザーに、パスワードなしで接続しようとした場合に出ます。-U postgres-h 127.0.0.1 を明示するか、sudo -u postgres psql を使ってください。

③「FATAL: password authentication failed」

パスワードが間違っています。ALTER USER postgres WITH PASSWORD '新パスワード'; でリセットできます。sudo -u postgres psql(peer認証)で接続してから実行してください。

④apt install で「Unable to locate package postgresql」が出る

apt update を先に実行していない、またはミラーサーバーに問題がある場合に出ます。




ubuntu@linuxlab: ~
$ sudo apt update && sudo apt install -y postgresql
(apt update を先に実行することで解決することが多いです)

まとめ

Ubuntu に PostgreSQL をインストールする手順をまとめます。

  • Ubuntu 24.04 LTS では apt install postgresql で PostgreSQL 16.14 がインストールされる(2026-06-13 実測)
  • Ubuntu 22.04 LTS では PostgreSQL 14.23 がインストールされる(バージョンが異なる)
  • インストール後はサービスが自動起動し、postgres スーパーユーザーと3つのデフォルト DB が作成される
  • デフォルトポートは 5432、設定ファイルは /etc/postgresql/16/main/ 以下
  • 外部接続には postgresql.conflisten_addressespg_hba.conf の編集が必要
  • アプリ用には専用ユーザーと DB を作成し、スーパーユーザーの直接利用は避ける

PostgreSQL を本格的に運用するなら、VPS(仮想プライベートサーバー)上での稼働がおすすめです。自宅サーバーと異なり、外部からのアクセスが容易で信頼性も高いです。VPS の選び方や性能比較については下記の記事も参考にしてください。

VPS性能・料金比較(2026年最新)→ bench-vps-speed-comparison.html

著者アイコン
著者アイコン

正直、PostgreSQL は MySQL と比べてちょっと設定が多いですが、その分 pg_hba.conf で細かくアクセス制御できるのが強みです。本番 VPS では最低でもファイアウォールと pg_hba.conf の両方でアクセス元を絞るようにしてください。

コメント

タイトルとURLをコピーしました