我在一个企业环境中(运行Debian Linux),没有自己安装它。我使用Navicat或phpPgAdmin访问数据库(如果有帮助的话)。我也没有运行数据库的服务器的shell访问权。
当前回答
如果你正在使用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 --version 2>&1 | tail -1 | awk '{print $3}' | sed 's/\./ /g' | awk '{print $1 "." $2}'
所以你可以构建到二进制文件的路径:
/usr/lib/postgresql/9.2/bin/postgres
只需将9.2替换为此命令。
使用命令行 服务器:
postgres -V
客户:
psql -V
登录postgres,然后:
postgres=# select version();
或者来自cli:
psql -c "SELECT version();"
使用VERSION特殊变量 以postgres用户登录:
sudo su - postgres
然后:
psql -c "\echo :VERSION"
请查看这里的指南以获得完整的解释
我相信这就是你要找的,
服务器版本:
pg_config --version
客户端版本:
psql --version
从PostgreSQL运行这个查询:
SELECT version();
如果Select version()返回Memo,尝试这样使用命令:
Select version::char(100)
or
Select version::varchar(100)
推荐文章
- 比较两个SQL Server数据库(模式和数据)的最佳工具是什么?
- PostgreSQL删除所有内容
- 如何找到Java堆大小和内存使用(Linux)?
- 遍历带空格的文件列表
- 为什么PostgreSQL要对索引列进行顺序扫描?
- Bash:无限睡眠(无限阻塞)
- 如何使Python脚本在Linux中像服务或守护进程一样运行
- PostgreSQL INSERT ON冲突更新(upsert)使用所有排除的值
- 如何检查一个表是否存在于给定的模式中
- 如何在SQL Server Management Studio中查看查询历史
- 如何使用文件的行作为命令的参数?
- time_t最终的类型定义是什么?
- 如何将整数转换为字符串作为PostgreSQL查询的一部分?
- Psycopg2:用一个查询插入多行
- PostgreSQL返回JSON数组的结果集?