centos 使用psql命令连接到数据库时出现问题

jdg4fx2g  于 2022-11-07  发布在  其他
关注(0)|答案(1)|浏览(193)

我正在使用CentOS 6.3并安装PostgreSQL 9.1服务器。我使用psql命令连接到Postgres服务器:

psql -h localhost -U postgres

这是我得到的结果。

postgres=# \c MYDB  
psql (8.4.11, server 9.1.7)  
WARNING: psql version 8.4, server version 9.1.  
         Some psql features might not work.  
You are now connected to database "MYDB".  
MYDB=#

谁能告诉我原因是什么?

更新

即使我卸载了PostgreSQL 9.1服务器,我仍然看到以下命令的结果。

[root@testserver bin]# find / -name 'postgres'
/var/spool/mail/postgres
[root@testserver bin]# find / -name 'psql'
/usr/bin/psql
[root@testserver bin]# which psql
/usr/bin/psql
[root@testserver bin]# which postgres
/usr/bin/which: no postgres in (/usr/lib64/qt-    3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/root/bin)
[root@testserver bin]# psql --version
psql (PostgreSQL) 8.4.11
contains support for command-line editing
[root@testserver bin]#

这里我的意图是,如果您执行which psql命令,它不应该显示任何输出,如果服务器没有安装。我卸载了Postgres服务器,并删除了/opt/PostgreSQL文件夹,但我仍然看到它。

qyzbxkaa

qyzbxkaa1#

原因是您正在使用psql 8.4版连接到9.1数据库。
大概PATH上的默认psql是旧版本。
如果您使用yum.postgresql.org安装了9.1,则应查看以下命令的输出:

update-alternatives --display pgsql-psql

因为您很可能同时安装了9.1和8.4,而较旧的版本被设置为默认版本。如果是这样,请运行:

update-alternatives --auto pgsql-psql

自动选择较新的版本,或:

update-alternatives --config pgsql-psql

以手动选择要运行的项目。
如果您通过其他方式安装了9.1,则需要使用完全显式的/path/to/9.1/bin/psql(无论您的9.1安装在何处),或者将您的PATH更改为在系统默认目录之前指向该bin目录。

相关问题