Ошибка Postgres: ни один существующий локальный кластер не подходит в качестве цели по умолчанию

У меня есть старый проект, в который я пытаюсь вернуться, но я не могу войти в 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? Googling не очень помог.

Ответ 1

Поскольку ни один из ваших кластеров не прослушивает порт по умолчанию 5432, psql (который на самом деле является ссылкой на pg_wrapper), не знает, какой из них должен быть "по умолчанию".

Вы можете использовать psql --cluster 9.4/apps [other arguments] для доступа к первому кластеру и psql --cluster 9.4/main [other arguments] для второго.

Или альтернативно определите переменную среды $PGCLUSTER для 9.4/apps или 9.4/main

Они исходят из правил № 2 и № 4 (из 8) pg_wrapper manpage.

Ответ 2

Если вам все равно, что ваш кластер по умолчанию, и просто хотите, чтобы все работало так, как раньше, просто укажите порт, с которым хотите подключиться, с

psql -p 5432

и postgres не будут пытаться быть умными для вас и использовать "кластер", что бы это ни было.

Ответ 3

Просто установите PGCLUSTER

export PGCLUSTER=9.4/main