私は企業環境(Debian Linuxを実行している)にいて、自分でインストールしませんでした。私はNavicatかphpPgAdminを使ってデータベースにアクセスします(それが助けになるならば)。データベースを実行しているサーバーへのシェルアクセスもありません。
PostgreSQLからこのクエリを実行します。
SELECT version();
私はこれがあなたが探しているものだと思います、
サーバーのバージョン
pg_config --version
クライアントのバージョン
psql --version
$ 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
=> 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
コマンドを実行する
psql -V
どこで
Vは大文字でなければなりません。
受け入れられた答えは素晴らしいです、しかしもしあなたが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...
*/
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)
シェルpsql.exeで、実行
\! psql -V
Pg_configコマンドは、PostgreSQLプログラムがインストールされているディレクトリ(--bindir)、Cインクルードファイルの場所(--incirdedir)、およびオブジェクトコードライブラリ(--libdir)、PostgreSQLのバージョン(--version)を報告します。 :
$ pg_config --version
PostgreSQL 9.3.6
私の場合
$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)
誰かに役立つことを願っています
簡単な方法は、端末にpsql --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パッケージのバージョンです。
これがどれほど信頼できるのかわからないが、あなたは完全に自動的に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をこのコマンドに置き換えてください。
Select version()
がMemoと一緒に戻った場合は、次のようにコマンドを使ってみてください。
Select version::char(100)
または
Select version::varchar(100)