Postgresql psql版本根据您的检查方式而有所不同

Postgresql psql版本根据您的检查方式而有所不同,postgresql,psql,Postgresql,Psql,系统说它在3个地方有psql版本13,但似乎是版本11: 三地: > psql --version psql (PostgreSQL) 13.1 (Ubuntu 13.1-1.pgdg20.04+1) > pg_config --version PostgreSQL 13.1 (Ubuntu 13.1-1.pgdg20.04+1) > psql -U postgres psql (13.1 (Ubuntu 13.1-1.pgdg20.04+1)

系统说它在3个地方有psql版本13,但似乎是版本11:

三地:

> psql --version
psql (PostgreSQL) 13.1 (Ubuntu 13.1-1.pgdg20.04+1)

> pg_config --version
PostgreSQL 13.1 (Ubuntu 13.1-1.pgdg20.04+1)

> psql -U postgres               
psql (13.1 (Ubuntu 13.1-1.pgdg20.04+1), server 11.10 (Ubuntu 11.10-1.pgdg20.04+1))
Type "help" for help.

postgres=#
在postgres中,如果我运行
SELECT version()上面写着11:

postgres=# SELECT version();
                                                              version                                                               
------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 11.10 (Ubuntu 11.10-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, 64-bit
(1 row)
我得到了,但是对
/etc/postgresql/13/main/pg_hba.conf
13)的更改对
psql
命令没有影响,而对
/etc/postgresql/11/main/pg_hba.conf
11)的更改则没有影响


发生了什么事?psql有一些奇怪的细微差别吗?

显然您安装了两个Postgres版本(13和11)

PATH变量包含版本13的二进制文件(
psql
pg_config
),但版本11在默认端口5432上运行。这也解释了为什么您需要为版本11更改pg_hba.conf以查看连接行为的差异


如果要连接到13实例,则需要为此提供端口。例如,请尝试
psql-p5433-U postgres
-通常第二次安装默认为下一个更高的端口号

psql
!=Postgres服务器
psql
是命令行客户端。因此,在所有情况下,甚至在最后一种情况下,您实际上都是
psql
v13:
psql(13.1(ubuntu13.1-1.pgdg20.04+1)、服务器11.10(ubuntu11.10-1.pgdg20.04+1))
。默认情况下,Debian/Ubuntu包将对所有Postgres服务器实例使用最新版本,因为
psql
是向后兼容的。