我在一个企业环境中(运行Debian Linux),没有自己安装它。我使用Navicat或phpPgAdmin访问数据库(如果有帮助的话)。我也没有运行数据库的服务器的shell访问权。
当前回答
使用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
如果更好奇,try => SHOW all;。
客户端版本:
值得注意的是,可以在psql中执行shell命令,以显示路径中psql可执行文件的客户端版本。注意,正在运行的psql可能与路径中的psql不同。
=> \! psql -V
psql (PostgreSQL) 9.2.9
其他回答
使用VERSION特殊变量
$psql -c "\echo :VERSION"
使用pgadmin4,双击Servers > server_name_here > Properties选项卡> Version:
3.5版本:
4.1、4.5版本:
在撰写本文时,适用于PgAdmin的当前版本:4.16。
选择需要版本的DB服务器。 单击其中的属性选项卡 右边的窗格。
请看下面的截图:
如果你正在使用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)
如果你已经在使用for工具(使用DBeaver)来连接PostgreSQL,它将是这样的:
推荐文章
- 查找当前可执行文件的路径,不包含/proc/self/exe
- 如何添加“删除级联”约束?
- 我如何得到“id”后插入到MySQL数据库与Python?
- 什么是ORM,它是如何工作的,我应该如何使用它?
- 如何将PostgreSQL从9.6版本升级到10.1版本而不丢失数据?
- 将主机端口转发到docker容器
- 为现有数据库生成ERD
- BASE术语解释
- 你能在Linux下运行Xcode吗?
- Linux上有对应的WinSCP工具吗?
- PostgreSQL错误:由于与恢复冲突而取消语句
- 按IN值列表排序
- 如何在Postgres 9.4中对JSONB类型的列执行更新操作
- 非加密用途的最快哈希?
- 查询以列出数据库中每个表中的记录数量