我在一个企业环境中(运行Debian Linux),没有自己安装它。我使用Navicat或phpPgAdmin访问数据库(如果有帮助的话)。我也没有运行数据库的服务器的shell访问权。
当前回答
执行命令
psql -V
在哪里
V必须大写。
其他回答
不知道这有多可靠,但你可以自动获得两个版本令牌:
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替换为此命令。
在撰写本文时,适用于PgAdmin的当前版本:4.16。
选择需要版本的DB服务器。 单击其中的属性选项卡 右边的窗格。
请看下面的截图:
使用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
检查PostgreSQL数据库版本的有用查询
bash-4.1$ psql
postgres=# SELECT version();
postgres=# SHOW server_version;
检查PostgreSQL客户端版本。
bash-4.1$ psql --version
psql (PostgreSQL) 12.1
如果Select version()返回Memo,尝试这样使用命令:
Select version::char(100)
or
Select version::varchar(100)
推荐文章
- 如何在Linux中循环目录?
- 使用PSQL命令查找主机名和端口
- 如何确定一个进程是否运行在lxc/Docker内部?
- 仅在文件不存在时才将行追加到文件中
- 如何强制makefile重新构建目标?
- 如何在父进程退出后使子进程死亡?
- 不可重复读和幻影读的区别是什么?
- 外键约束:何时使用ON UPDATE和ON DELETE
- 从URL执行bash脚本
- [: shell编程中的意外操作符
- 连接查询vs多个查询
- MySQL:在同一个MySQL实例上克隆MySQL数据库
- 在Unix中,我可以在一个目录中运行'make'而不首先cd'到该目录吗?
- Postgresql列表和排序表的大小
- 如何从命令行重置Jenkins安全设置?