我在公司环境中使用Debian Linux系统,没有自己安装。我使用Navicat或phpPgAdmin来访问数据库(如果有帮助的话)。我也无法通过shell访问运行数据库的服务器。
我在公司环境中使用Debian Linux系统,没有自己安装。我使用Navicat或phpPgAdmin来访问数据库(如果有帮助的话)。我也无法通过shell访问运行数据库的服务器。
在PostgreSQL中运行此查询:
SELECT version();
我相信这就是你要找的内容,
服务器版本:
pg_config --version
客户端版本:
psql --version
pg_config --version
命令:
psql --version
无法工作,因为它抱怨:dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib Referenced from: /usr/local/bin/psql Reason: image not found
- rld$ 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
=> 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
psql postgres -c "SHOW server_version" -t -A
。 -t
去除标题,-A
去除对齐空格。 - PocketsandSHOW server_version_num
,这对于不等式非常方便。 - eswaldpostgres
用户,那么可以执行以下操作: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)
接受的答案很好,但如果你需要以编程方式与 PostgreSQL 版本进行交互,可能最好做如下处理:
SELECT current_setting('server_version_num'); -- Returns 90603 (9.6.3)
-- Or using SHOW command:
SHOW server_version_num; -- Returns 90603 too
它将返回服务器版本作为整数。这是在PostgreSQL源代码中测试服务器版本的方式,例如:
/*
* This is a C code from pg_dump source.
* It will do something if PostgreSQL remote version (server) is lower than 9.1.0
*/
if (fout->remoteVersion < 90100)
/*
* Do something...
*/
执行命令
psql -V
在哪里
V 必须大写。
psql
(客户端)的版本,不是 Postgres 服务器的版本。 - user330315在 shell 中执行 psql.exe
\! psql -V
一个简单的方法是在终端中输入psql --version
来检查版本
postgres -V
客户端:
psql -V
postgres=# select version();
或者使用命令行界面:
psql -c "SELECT version();"
VERSION
特殊变量
以 postgres 用户身份登录:sudo su - postgres
接着:
psql -c "\echo :VERSION"
请查看这里的指南,获取完整的解释。
psql -c 'SELECT version();'
。 - Aaron Lelevierpsql postgres -c 'SELECT version();'
- thathashdsudo -u postgres psql postgres -c 'SELECT version()' | grep PostgreSQL
命令可以解决 "role 'username' does not exist" 的问题。 - Marcus Junius Brutus