web-dev-qa-db-ja.com

どこのバージョンのPostgreSQLを実行していますか?

私は企業環境(Debian Linuxを実行している)にいて、自分でインストールしませんでした。私はNavicatかphpPgAdminを使ってデータベースにアクセスします(それが助けになるならば)。データベースを実行しているサーバーへのシェルアクセスもありません。

866

PostgreSQLからこのクエリを実行します。

SELECT version();
1381

私はこれがあなたが探しているものだと思います、

サーバーのバージョン

pg_config --version

クライアントのバージョン

psql --version
464
user1877337

CLIを使用する

サーバーのバージョン

$ postgres -V  # Or --version.  Use "locate bin/postgres" if not found.
postgres (PostgreSQL) 9.6.1
$ postgres -V | awk '{print $NF}'  # Last column is version.
9.6.1
$ postgres -V | egrep -o '[0-9]{1,}\.[0-9]{1,}'  # Major.Minor version
9.6

複数のPostgreSQLをインストールしている場合、または "postgres: command not found"エラーが発生した場合:

$ locate bin/postgres | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/pgsql-9.3/bin/postgres -V 
postgres (PostgreSQL) 9.3.5
/usr/pgsql-9.6/bin/postgres -V 
postgres (PostgreSQL) 9.6.1

locateが役に立たない場合は、findを試してください。

$ Sudo find / -wholename '*/bin/postgres' 2>&- | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/pgsql-9.6/bin/postgres -V 
postgres (PostgreSQL) 9.6.1

postmasterpostgresの代わりにも使用できますが、postgrespostmasterの非推奨別名であるため、postgresを使用することをお勧めします。

クライアントのバージョン

関連して、 postgres としてログインしてください。

$ psql -V  # Or --version
psql (PostgreSQL) 9.6.1

PostgreSQLを複数インストールした場合:

$ locate bin/psql | xargs -i xargs -t '{}' -V  # xargs is intentionally twice.
/usr/bin/psql -V 
psql (PostgreSQL) 9.3.5
/usr/pgsql-9.2/bin/psql -V 
psql (PostgreSQL) 9.2.9
/usr/pgsql-9.3/bin/psql -V 
psql (PostgreSQL) 9.3.5

SQLを使用する

サーバーのバージョン

=> SELECT version();
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.9 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit

=> SHOW server_version;
 server_version 
----------------
 9.2.9

=> SHOW server_version_num;
 server_version_num 
--------------------
 90209

もっと興味があるなら、=> SHOW all;を試してください。

クライアントのバージョン

価値のあることに、シェルコマンドをpsql内で実行して、パス内のpsql実行可能ファイルのクライアントバージョンを表示できます。実行中のpsqlは、パス内のものとは異なる可能性があることに注意してください。

=> \! psql -V
psql (PostgreSQL) 9.2.9
201
A-B-B

コマンドを実行する

psql -V

どこで

Vは大文字でなければなりません。

33
vipin cp

受け入れられた答えは素晴らしいです、しかしもしあなたがPostgreSQLバージョンとプログラム的にやり取りする必要があるなら多分それはするほうが良いでしょう:

SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too

サーバーのバージョンを整数で返します。これは PostgreSQLソース でサーバのバージョンがどのようにテストされるかです。例えば:

/*
 * This is a C code from pg_dump source.
 * It will do something if PostgreSQL remote version (server) is lower than 9.1.0
 */
if (fout->remoteVersion < 90100)
    /*
     * Do something...
     */  

詳しい情報 はこちらはこちら

23
Michel Milezzi

CLIを使用していて、あなたがpostgresユーザーである場合は、次のようにします。

psql -c "SELECT version();"


可能な出力

                                                         version                                                         
-------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.1 (Debian 11.1-3.pgdg80+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10+deb8u2) 4.9.2, 64-bit
(1 row)
23
simhumileco

シェルpsql.exeで、実行

\! psql -V

pgadmin4を使用すると、Servers> server_name_here> Propertiesタブ> Versionの順にダブルクリックすると表示されます。

バージョン3.5:

pgadmin4 show postgres version. Servers > server_name > Properties > Version

バージョン4.1、4.5:

enter image description here

10
jmunsch

Pg_configコマンドは、PostgreSQLプログラムがインストールされているディレクトリ(--bindir)、Cインクルードファイルの場所(--incirdedir)、およびオブジェクトコードライブラリ(--libdir)、PostgreSQLのバージョン(--version)を報告します。 :

$ pg_config --version
PostgreSQL 9.3.6
8
Donato

私の場合

$psql
postgres=# \g
postgres=# SELECT version();
                                                       version
---------------------------------------------------------------------------------------------------------------------
 PostgreSQL 8.4.21 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
(1 row)

誰かに役立つことを願っています

8
Vikas Hardia

簡単な方法は、端末にpsql --versionと入力してバージョンを確認することです。

8
Alex Trn

Debian/ubuntuシステム上でサーバーへのシェルアクセスがある場合(質問にはopはありませんが、持っている場合はそうです)

Sudo apt-cache policy postgresql

インストールされているバージョンを出力します

postgresql:
  Installed: 9.6+184ubuntu1.1
  Candidate: 9.6+184ubuntu1.1
  Version table:
 *** 9.6+184ubuntu1.1 500
        500 http://in.archive.ubuntu.com/ubuntu artful-updates/main AMD64 Packages
        500 http://in.archive.ubuntu.com/ubuntu artful-updates/main i386 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main AMD64 Packages
        500 http://security.ubuntu.com/ubuntu artful-security/main i386 Packages
        100 /var/lib/dpkg/status
     9.6+184ubuntu1 500
        500 http://in.archive.ubuntu.com/ubuntu artful/main AMD64 Packages
        500 http://in.archive.ubuntu.com/ubuntu artful/main i386 Packages

Installed: <version>はインストールされているpostgresパッケージのバージョンです。

3

これがどれほど信頼できるのかわからないが、あなたは完全に自動的に2つのバージョンのトークンを手に入れることができる:

psql --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'

それで、バイナリへのパスを作ることができます。

/usr/lib/postgresql/9.2/bin/postgres

9.2をこのコマンドに置き換えてください。

3
Alexey Petrenko

Select version()がMemoと一緒に戻った場合は、次のようにコマンドを使ってみてください。

Select version::char(100) 

または

Select version::varchar(100)
0
aTa