(最終更新月: 2025年07月16日)
✓当記事はこんな方におすすめです
「PostgreSQLのバージョン確認方法を知りたい」
「コマンドやSQLの違い・詳細な確認方法を実例付きで理解したい」
「自分の環境(サーバー・クラウド・GUI)に合わせて確実な方法を知りたい」
✓当記事で理解できること
- PostgreSQLのバージョン確認の考え方と諸注意
- サーバー・クライアント・クラウド・ファイル別バージョン確認手順
- トラブルを防ぐための注意点と環境別の現場対応例
この記事では、PostgreSQLのバージョン確認方法を、SQL・コマンドライン・GUI・クラウド管理画面などあらゆる角度から、未経験者や初学者の方にもわかりやすく体系立てて解説します。トラブル発生時に迷わず対処できるヒントも満載です。
最後まで読んでいただければ、どんな環境でも確実にPostgreSQLのバージョンを調べる自信が持てるはずです。
それでは、一緒に見ていきましょう。
PostgreSQLのバージョン確認が重要な理由とバージョン表記の基本
このセクションでは、なぜPostgreSQLのバージョンを把握することが現場で欠かせないのか、またバージョン番号表記の歴史的な背景や読み方を丁寧に解説します。
理由は、データベースの健全性・セキュリティ・将来のメンテナンスにおいて、バージョンが土台になるからです。
- バージョン把握の必要性
- PostgreSQLのバージョン表記の変遷とその意味
- バージョン確認でよくある疑問・失敗例
バージョン把握の必要性
PostgreSQLのバージョンは、互換性・セキュリティ・新機能の利用という3つの観点で極めて重要です。
なぜなら、稼働中のアプリケーションや外部ツールは対応バージョンが限られているため、バージョン不一致だと思わぬエラーや脆弱性リスクが生じます。
例えば、古いバージョンではサポート終了によるセキュリティパッチ未提供や、最新の便利なSQL構文が使えない、といったトラブルが起きやすくなります。
バージョン確認は、「何となく」ではなく確実に実施し、常に最新情報を押さえて運用することが鉄則です。
PostgreSQLのバージョン表記の変遷と意味
バージョン表記は、PostgreSQL10以前と以降で大きく変わっています。
理由は、採番規則の直感性を高めるためです。
10より前は「9.6.22」のように、最初の二つ(9.6)がメジャー、最後(22)がマイナーアップデートを示していました。
一方、10以降は「14.9」のような2セグメント形式となり、頭(14)がメジャー、ドット以降(9)がマイナーとなります。
この仕様変更は、自動化スクリプトやトラブル調査の際に混乱しやすいので、番号の“どこを比較”しているか意識しましょう。
バージョン確認でよくある疑問・失敗例
初学者の方から、「psql –versionで表示される数字と、DB接続時のSELECT version()の数字が違う」という声をよく聞きます。
背景には、クライアントのpsql(手元にあるコマンドツール)と、サーバー(DBとして稼働しているPostgreSQL本体)は別々のバージョン管理となっている構造があります。
たとえば、社内のLinuxサーバーにバージョン13と14の両方がインストール済みで、PATHの設定や接続先次第で異なるバージョンが動いている…という現場あるあるも。
「どの確認方法が、ローカルなのかサーバーなのか」を正確に理解するのが、トラブルの根絶につながります。
SQLコマンドによるPostgreSQLサーバーバージョンの確認
このセクションでは、「データベースにSQLで接続できる」という前提下で、サーバーバージョンを確実に特定するための複数手法を紹介します。
理由は、リモートから運用している現場や、サーバーOSへの直接アクセス権がない開発者の場合でも、確実にバージョンを調べられるからです。
- SELECT version()で詳細なバージョン情報を得る
- SHOW server_versionによるシンプルな確認
- server_version_num・pg_settings・比較用の便利コマンド
SELECT version()で詳細なバージョン情報を得る
もっとも網羅的な情報を取得したい場合、SELECT version()関数の実行が有効です。
この関数はバージョン番号だけでなく、ビルド環境・OSやコンパイラ情報なども含まれた文字列を返してくれます。
例えば以下の通りです。
SELECT version();
出力例:
PostgreSQL 14.9 (Ubuntu 14.9-1.pgdg22.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
このコマンドは、トラブル時やサポート問い合わせ時に、“どんなマシンで、どんな設定のPostgreSQLが動いているか” を一発で知りたい時に力を発揮します。
SHOW server_versionによるシンプルな確認
「バージョン番号さえ分かれば十分!」という場合はSHOW server_versionコマンドが最速です。
この手法は、特に手作業やスクリプトによる一括チェックの時に有用です。
コマンド例:
SHOW server_version;
出力例:
14.9
バージョン“だけ”が返され、ヒューマンエラーの余地を減らしつつミス防止にもつながります。
server_version_num・pg_settings・比較用の便利コマンド
バージョン番号の<大小判定>やプログラムによる条件分岐には、数値型で出るserver_version_numが最適です。
このVARは、SQLコマンドの “SHOW server_version_num;” で取得できます。
SHOW server_version_num;
出力例:
140009
「バージョン13以上の時だけある機能を有効化」など、現場でありがちな条件分岐にピッタリ。なお、pg_settingsシステムカタログを以下のように検索しても同種情報が確認できます。
SELECT setting FROM pg_settings WHERE name = 'server_version';
プログラム制御や複数サーバーのチェックにも役立つため、知っておいて損はありません。
コマンドライン・OS環境別のPostgreSQLバージョン確認手順
このセクションでは、サーバーへ直接ログインできる環境やローカル開発で使われる標準的なコマンドによる確認方法を徹底解説します。
理由は、起動していないサーバーや複数バージョン混在環境での混乱を最小限にするためです。
- コアサーバー: postgres –version
- クライアント: psql –version
- ビルド情報: pg_config –version
- バージョン不一致・PATH混乱の注意点
- command not foundエラーの対処法
コアサーバー: postgres –version
PostgreSQL本体のバイナリ自体のバージョンは、postgres –version(または-V)で取得できます。
これは、そのサーバーマシンに“どのバージョンのDB本体がインストールされているか”を直に知る方法です。
postgres --version
出力例:
postgres (PostgreSQL) 14.9
サーバー管理者や運用担当者に特に覚えておいてほしいコマンドです。
クライアント: psql –version
psqlは、PostgreSQLへ接続するためのコマンドラインクライアントです。
パソコンやサーバーでこのツールが「何バージョンなのか」を調べるには次のコマンドを利用します。
psql --version
出力例:
psql (PostgreSQL) 14.9
ここで重要なのは、「psqlのバージョン=接続先DBのバージョン」ではない点です。必ず下記のように区別して考えましょう:
- psql –version は「手元のクライアント」バージョン
- SELECT version() や SHOW server_version は「サーバー」バージョン
ビルド情報: pg_config –version
PostgreSQLインストール時のビルド構成やライブラリ等の情報を調べたいときには、pg_config –versionが有効です。
pg_config --version
複数バージョン混在環境で「このパスにあるバイナリは何バージョンか?」を明確にしたいシーンで便利です。
バージョン不一致・PATH混乱の注意点
psql –versionとサーバーバージョン(SELECT version()で取得)で数字が異なる場合は、一つのサーバーに複数バージョンが入っていてPATHの設定によるものが多いです。
現場では、手元のクライアントpsqlが「14」だが、サーバーは「13」だった、といった事例が頻繁に発生します。
混乱時は、絶対パスを指定したpsqlやpostgres、pg_configコマンドでバージョン照会を行い、意図するバージョンが動いているかダブルチェックしましょう。
コマンド結果に齟齬(数字違い)があった場合は、必ずPATHやサービス起動ステータスを確認してください。
command not foundエラーの対処法
「psql: command not found」となった場合、そのバイナリパスが環境変数PATHに含まれていない状態です。
OSのfindコマンドなどでバイナリの設置場所を探し、絶対パスで起動できるかを試してみましょう。
sudo find / -name "psql"
発見したパスで直接コマンドを叩いて正常動作するか確認し、必要なら~/.bashrc等にPATH追記をしてください。Linuxの環境変数PATHの理解は基本中の基本です。
GUI・クラウド・ファイルからのPostgreSQLバージョン確認
このセクションでは、コマンドが使えない環境やマネージドクラウドサービス利用時、またファイルシステムのみアクセス可能なケースでのバージョン調査方法を紹介します。
このノウハウは現場の幅広い状況に合わせて柔軟な対応を可能にします。
- pgAdminによる可視的なGUIバージョン表示
- 主要クラウド(AWS/GCP/Azure)管理画面でのバージョン確認
- PG_VERSIONファイルでデータ直読み
- Pythonコードによる動的確認の例
pgAdminによる可視的なGUIバージョン表示
PostgreSQL用GUI管理ツールの代表格であるpgAdminでは、サーバー接続成功後のダッシュボードやPropertiesタブにバージョン情報が明示されています。
画面左ツリーで対象サーバーを選択、「Properties」タブに「Version」項目が表示されており、初心者でも一目で把握可能です。
直感的な操作を重視したい方や、複数サーバーを可視的に管理したい現場には特におすすめです。
さらに詳しく知りたい方は【初心者向け】pgadmin4でできること|画像付きで丁寧に解説も合わせてチェックしてください。
主要クラウド(AWS/GCP/Azure)管理画面でのバージョン確認
Amazon RDS、Google Cloud SQL、Azure Database for PostgreSQLなどのクラウド型DBサービスでは、サーバー本体(OSやコマンド)へのアクセスが制限されている場合が多いです。
その場合、各クラウドのWeb管理コンソールもしくは公式CLIコマンドから、予め「エンジンバージョン」が明記されています。
- AWS RDS: RDSのDBインスタンス詳細ページの「エンジンバージョン」欄
- Google Cloud SQL: インスタンスの「概要」カード内、「データベースバージョン」欄
- Azure: 概要画面の「サーバーバージョン」
CLIにも例えばAWSなら
aws rds describe-db-instances --query "DBInstances[*].EngineVersion"
等のコマンドがあります。
クラウドDBではこの方法がデファクトとなっています。
PG_VERSIONファイルでデータ直読み
サーバーが停止していてコマンドもSQLも発行できない、しかしファイルシステムのみアクセス可能──そんな障害現場でも有効なのがPG_VERSIONファイルの活用です。
PostgreSQLのデータ格納ディレクトリ直下にあるこのテキストファイルには、管理対象のメジャーバージョン番号が一行だけ書かれています。
cat /var/lib/postgresql/14/main/PG_VERSION
例えば「14」とあれば、そのディレクトリがPostgreSQL 14系で管理されていると分かります。
障害復旧や手動バックアップ作業時、意外と役立ちます。
Pythonコードによる動的確認の例
プログラムの中で、接続先DBのバージョンに応じて処理を分岐したい場合もあります。
Pythonのpsycopg2を使った例を示します。
import psycopg2
try:
conn = psycopg2.connect("dbname=postgres user=postgres host=localhost")
cur = conn.cursor()
cur.execute("SHOW server_version_num;")
version_num = int(cur.fetchone()[0])
print(f"Server version number: {version_num}")
if version_num >= 140000:
print("Connected to PostgreSQL version 14 or newer.")
else:
print("Connected to an older version of PostgreSQL.")
except psycopg2.Error as e:
print(f"Database connection error: {e}")
finally:
if 'conn' in locals() and conn is not None:
cur.close()
conn.close()
この例では、数値型バージョンで厳密な分岐ができるため堅牢な設計が可能です。主要な言語(Node.js, Java, Goなど)でも同様に実装できます。
まとめ
この記事では、PostgreSQLのバージョンをあらゆる環境・状況で確実に調べる手順を体系的にまとめました。
- SQLクエリ(SELECT version(), SHOW server_version等)によるサーバーバージョン調査
- コマンドライン(postgres, psql, pg_config)やPATHの整理による本体・クライアントの確認
- GUI・クラウド・ファイル直読・プログラムによる多角的な確認手段
それぞれの方法を使い分けることで、「今この環境で本当に稼働しているPostgreSQLのバージョンが何なのか」をいつでも正しく把握できるようになります。
バージョンアップや移行を検討している方は、必ず公式ドキュメント(PostgreSQL公式ドキュメント)を参照し、テスト環境で入念に検証・バックアップを行うことをおすすめします。
また、MySQLやその他SQLに関する知識も役立つので、MySQLとは?重要性から使用例まで詳しく、わかりやすく解説やSQLの基本・入門ガイド記事もあわせてご活用ください。
今後もIT分野で使えるノウハウや最新情報をお届けしていきます。少しでも不安があれば、ぜひお気軽にITC Mediaまでご相談ください!
レンタルサーバーを探している方には、安定性・コスパ重視の KAGOYAのレンタルサーバー もおすすめです。