【Ubuntu】Server ProでPostgreSQLとpgAdmin4を導入する完全ガイド

はじめに

Ubuntu Server Pro環境で、PostgreSQLとpgAdmin4を使ってGUIベースでデータベース管理を始めたい方向けに、インストールから接続までの手順をわかりやすく解説します。

尚、本ブログではVMWare Workstation Pro 環境下にUbuntu Server Proをインストールして作業を進めます。

Windows 11 への「VMWare Workstation Pro」インストールは下記ブログを参考にして下さい。
参考:Windows 11 への「VMWare Workstation Pro」インストール

Ubuntu Server Pro について

Ubuntu Server Pro は、通常のUbuntu Serverに「セキュリティ強化」と「長期サポート」を追加したプロ向けの拡張サービスです。

  • 主な特徴
    • 最大10年間のセキュリティ更新(通常は5年)
    • Livepatch機能:再起動なしでカーネルの脆弱性を修正
    • ESM(Extended Security Maintenance):古いパッケージも安全に使える
    • FIPS準拠:政府・金融機関向けのセキュリティ基準に対応
    • 無料使用:個人なら最大5台まで無料で使用可能
  • 主な使用者
    • サーバーを長期間安定運用したい人
    • セキュリティを重視する企業・開発者

PostgreSQLとPgadmin4 について

PostgreSQLは無料で使える高機能なデータベース管理システム(RDBMS)

  • 主な特徴
    • オープンソースで信頼性が高く、世界中の企業や開発者に利用されています
    • 複雑なデータ処理やトランザクション管理に強く、商用DBに匹敵する性能を持ちます

pgAdmin4は、PostgreSQLをGUIで操作できる管理ツール

  • 主な特徴
    • Webブラウザやデスクトップアプリで動作し、初心者でも直感的に使えます
    • データベースの作成・編集・クエリ実行・バックアップなどが可能

このブログで習得できること

  1. Ubuntu Server Proの初期設定とパッケージ更新
  2. PostgreSQLのインストールと基本設定
  3. PostgreSQLとpgAdmin4の接続方法
  4. よくあるトラブルとその対処法

Ubutu Server Pro の更新と準備

まずはサーバー環境を最新に保ちます。これにより、依存関係の不具合を防げます。

sudo apt update && sudo apt upgrade -y
  • apt update:パッケージ情報を最新に更新
  • apt upgrade -y:インストール済みのパッケージを一括アップグレード

PostgreSQLのインストール

Ubuntuでは公式リポジトリから簡単にPostgreSQLを導入できます。

sudo apt install postgresql postgresql-contrib -y
  • postgresql:メインのデータベースサーバー
  • postgresql-contrib:便利な追加モジュール(例:uuid生成など)

インストール直後のPostgreSQLサービス状態

以下のコマンドで状態を確認します。

sudo systemctl status postgresql

コマンドの実行結果。

  • Loaded(ユニットファイル読み込み状態)の 確認
    • preset: enabled となっているので、「自動起動が許可されている」状態。
  • Active(サービス稼働状態)の確認
    • active(exited)となっているのは、「サービスは起動したがすぐに終了した」状態を示しています。これは、正常な動作です。

PostgreSQLの初期設定(ユーザーとDBの作成)

新規ユーザーの作成

  • PostgreSQLでは、postgresが管理者なので、先ず管理者ユーザーに切り替えます。
sudo -i -u postgres
  • 新規スーパーユーザーの作成は下記コマンド作成します。
createuser --interactive --pwprompt --superuser
  • 新規ユーザーの名称を入力
  • スーパーユーザーにするか否かを入力
Enter name of role to add: myuser 
Enter password for role:*****
Enter it again:*****
  • myuser がスーパーユーザーとして登録されたかの確認
    • psql でPostgreSQLのシェルに入り
    • \du で確認

新規データベースの作成

  • PostgreSQLのシェルで、新規スーパーユーザー接続用のデータベースを作成する
\q                                #一旦、PostgreSQLのシェルから抜ける\
createdb -U postgres -O myuser myuser
  • 新規スーパーユーザーでPostgreSQLにログインする
psql -U myuser -W -h 127.0.0.1

PgAdmin4(Web版)のインストール

pgAdmin4はPostgreSQLをGUIで管理できる強力なツールです。下記コマンドで必要パッケージのインストールを行います。

  • 必要なパッケージの準備
sudo apt update
sudo apt install curl gnupg lsb-release ca-certificates
  • pgAdminのGPG鍵の追加
curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/pgadmin-keyring.gpg
  • APTリポジトリの追加
echo "deb [signed-by=/usr/share/keyrings/pgadmin-keyring.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" | sudo tee /etc/apt/sources.list.d/pgadmin4.list
  • パッケージ情報を更新
sudo apt update
  • pgAdmin Web版のインストール
sudo apt install pgadmin4-web
  • N: Ignoring file ‘pgadmin4.’ in directory ‘/etc/apt/sources.list.d/’ as it has an invalid filename ecxtendion E: unable to locate package pgadmin4-web エラーが出る場合
    • これはリポジトリ設定ファイルのファイル名の拡張子ミスが原因で、APT がそのファイルを無視しているために pgadmin4-web パッケージが見つからないというエラーです。
    • APT は /etc/apt/sources.list.d/ にあるファイルのうち、.list 拡張子が付いていないファイルを無視します
    • つまり、pgadmin4. というファイル名は .list が付いていないため、APT にとって無効です。
  • エラーの対策
    • ファイル名を修正
    • これで .list 拡張子が付いた正しいファイル名になります。
sudo mv /etc/apt/sources.list.d/pgadmin4. /etc/apt/sources.list.d/pgadmin4.list
  • APTキャッシュの更新
    • これで、pgadminのリポジトリが読み込まれ、パッケージ情報が取得されます。
sudo apt update
  • pgAdmin Web版のインストール
sudo apt install pgadmin4-web
  • Webモードの初期設定
sudo /usr/pgadmin4/bin/setup-web.sh

このスクリプトを実行すると、以下のような対話が始まります:

  • 初期ユーザーのメールアドレスとパスワードを入力
  • Apache の設定を自動で行うか確認(y を選択)
  • Apache を再起動して設定を反映

pgAdmin4にアクセスしてPostgreSQLを管理

  • VMware上のUbuntu Server Pro のIPアドレスを確認
ip a
  • ホストPCのブラウザで以下にアクセス
http://<サーバーのIPアドレス>/pgadmin4
  • pgAdmin ログイン画面

ログイン後、「新しいサーバーを追加」からPostgreSQLを追加します。

  • Name: 任意(例:MyPostgres)
  • Host: localhostまたはサーバーのIP
  • Username: 作成したユーザー(例:myuser
  • Password: そのユーザーのパスワード

良くあるトラブルと対処法

トラブル原因解決方法
pgAdmin4にアクセスできないポート未開放sudo ufw allow 80で開放
PostgreSQLに接続できない認証エラーpg_hba.confの設定を確認
pgAdmin4ログイン失敗パスワードミスsetup-web.shを再実行
外部接続できないlisten_addressesが制限されているpostgresql.conf'*'に変更

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