我在一个企业环境中(运行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
其他回答
一个简单的方法是在终端中输入psql——version来检查版本
pg_config命令将报告PostgreSQL程序的安装目录(——bindir), C包含文件(——includedir)和目标代码库(——libdir)的位置,以及PostgreSQL的版本(——version):
$ pg_config --version
PostgreSQL 9.3.6
从PostgreSQL运行这个查询: 选择版本();
在shell psql.exe中执行
\! psql -V
如果你正在使用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)
推荐文章
- 如何在Linux中循环目录?
- 使用PSQL命令查找主机名和端口
- 如何确定一个进程是否运行在lxc/Docker内部?
- 仅在文件不存在时才将行追加到文件中
- 如何强制makefile重新构建目标?
- 如何在父进程退出后使子进程死亡?
- 不可重复读和幻影读的区别是什么?
- 外键约束:何时使用ON UPDATE和ON DELETE
- 从URL执行bash脚本
- [: shell编程中的意外操作符
- 连接查询vs多个查询
- MySQL:在同一个MySQL实例上克隆MySQL数据库
- 在Unix中,我可以在一个目录中运行'make'而不首先cd'到该目录吗?
- Postgresql列表和排序表的大小
- 如何从命令行重置Jenkins安全设置?