协慌网

登录 贡献 社区

我正在运行哪个版本的 PostgreSQL?

我在公司环境中(运行 Debian Linux)并没有自己安装它。我使用 Navicat 或 phpPgAdmin 访问数据库(如果有帮助的话)。我也没有 shell 访问运行数据库的服务器。

答案

从 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更好,因为postmasterpostgres一个弃用别名。

客户版本:

相关,请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执行 shell 命令,以在路径中显示psql可执行文件的客户端版本。请注意,正在运行的psql可能与路径中的psql不同。

=> \! psql -V
psql (PostgreSQL) 9.2.9