私は(Debian Linuxを実行している)企業環境にいて、自分でインストールしませんでした。NavicatまたはphpPgAdminを使用してデータベースにアクセスします(それが役立つ場合)。また、データベースを実行しているサーバーへのシェルアクセスもありません。
20 に答える
PostgreSQLから次のクエリを実行します。
SELECT version();
これがあなたが探しているものだと思います、
サーバーバージョン:
pg_config --version
クライアントバージョン:
psql --version
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
postmaster
の代わりに使用することもできますが、は非推奨のエイリアスであるためpostgres
、を使用することをお勧めします。postgres
postmaster
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
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)
受け入れられた答えは素晴らしいですが、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...
*/
コマンドを実行する
psql -V
どこ
Vは大文字でなければなりません。
シェルpsql.exeで、実行します
\! psql -V
psql --version
簡単な方法は、ターミナルに入力してバージョンを確認することです
私の場合
$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)
それが誰かを助けることを願っています
pg_configコマンドは、PostgreSQLプログラムがインストールされているディレクトリ(--bindir)、Cインクルードファイルの場所(--includedir)とオブジェクトコードライブラリ(--libdir)、およびPostgreSQLのバージョン(--version)を報告します。 :
$ pg_config --version
PostgreSQL 9.3.6
VERSION
特別な変数を使用する
$psql -c "\echo :VERSION"
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パッケージのバージョンです。
PostgreSQLデータベースバージョンをチェックするための便利なクエリ
bash-4.1$ psql
postgres=# SELECT version();
postgres=# SHOW server_version;
PostgreSQLクライアントのバージョンを確認するには。
bash-4.1$ psql --version
psql (PostgreSQL) 12.1
これがどれほど信頼できるかはわかりませんが、バージョンの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をこのコマンドに置き換えるだけです。
- コマンドラインサーバーの使用:
postgres -V
クライアント:
psql -V
- 次にpostgresにログインします。
postgres=# select version();
またはCLIから:
psql -c "SELECT version();"
VERSION
postgresユーザーとして特別な変数Loginを使用します。
sudo su - postgres
それで:
psql -c "\echo :VERSION"
完全な説明については、こちらのガイドをご覧ください
これはかなり古い質問であり、多くの良い答えがあります。バージョン12以降では、クライアントを呼び出すだけで、知っておくべきことを教えてくれることがわかりましたが、サーバーのシェルで実行しました。以下の例と出力。
私がバージョン12を使用していたとき:
$ sudo su postgres -c "psql"
psql (12.8 (Ubuntu 12.8-0ubuntu0.20.04.1))
クライアントとサーバーの両方がバージョン12であるため、これを読みました。
Ubuntuを20.04から21.04にアップグレードした後:
$ sudo su postgres -c "psql"
psql (13.4 (Ubuntu 13.4-0ubuntu0.21.04.1), server 12.8 (Ubuntu 12.8-0ubuntu0.20.04.1))
私が確認したように、クライアントはバージョン13であるが、サーバーはまだ12であることがはっきりとわかります。
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 online postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
ちなみに、この段階では、この誤解を招く結果に注意してください。
$ pg_config --version
PostgreSQL 13.4 (Ubuntu 13.4-0ubuntu0.21.04.1)
バージョン14にアップグレードした後:
$ sudo su postgres -c "psql"
psql (14.0 (Ubuntu 14.0-1.pgdg21.04+1))
Type "help" for help.
postgres=#
繰り返しになりますが、クライアントとサーバーの両方がバージョン14であると解釈し、もう一度確認しました。
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
12 main 5432 down,binaries_missing postgres /var/lib/postgresql/12/main /var/log/postgresql/postgresql-12-main.log
14 main 5433 online postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
ちなみに、このバージョンはSELECT version();
クエリを実行して取得したものと同じです。
Select version()
メモで戻る場合は、次のようにコマンドを使用してみてください。
Select version::char(100)
また
Select version::varchar(100)