我有一个旧项目,我正试图重新进入,但我不能进入postgres。正在运行sudo -u postgres psql
给了我:
Error: No existing local cluster is suitable as a default target.
Please see man pg_wrapper(1) how to specify one.
我想知道这是否是因为我几个月前将postgres升级到版本9.4。这是我dpkg --get-selections |grep postgres
的输出:
postgresql install
postgresql-9.3 install
postgresql-9.4 install
postgresql-client-9.3 install
postgresql-client-9.4 install
postgresql-client-common install
postgresql-common install
postgresql-contrib install
postgresql-contrib-9.3 install
postgresql-contrib-9.4 install
postgresql-server-dev-9.3 install
这些是我pg_lsclusters
的当前群集:
Ver Cluster Port Status Owner Data directory Log file
9.4 apps 5434 online postgres /var/lib/postgresql/9.4/apps /var/log/postgresql/postgresql-9.4-apps.log
9.4 main 5433 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
我可以做些什么才能再次访问postgres?谷歌搜索没有多大帮助。
答案 0 :(得分:4)
由于您的群集都没有侦听默认端口5432
,psql
(实际上是pg_wrapper
的链接)并不知道哪个群组应该是&psql --cluster 9.4/apps [other arguments]
#34;默认"
您可以使用psql --cluster 9.4/main [other arguments]
访问第一个群集,使用$PGCLUSTER
访问第二个群集。
或者将9.4/apps
环境变量定义为9.4/main
或{{1}}
这些来自pg_wrapper manpage的规则#2和#4(满分8)。
答案 1 :(得分:4)
如果您不关心默认群集是什么,并且只是想让事情像之前一样工作,只需指定要连接的端口
psql -p 5432
并且postgres不会试图为你聪明并使用"集群",不管是什么。
答案 2 :(得分:0)
只需设置PGCLUSTER
export PGCLUSTER=9.4/main