Похоже, вы когда-то apt-get install postgresql
бежали. В этом случае у вас, вероятно, установлена установка PostgreSQL по умолчанию для Debian. Некоторая информация об этом доступна на вики Debian , а некоторая — в /usr/share/doc/postgresql-common/README.Debian.gz
.
Установка Debian поддерживает несколько «кластеров» (, на которых запущены экземпляры PostgreSQL, а также несколько разных версий PostgreSQL ). Чтобы узнать, какие из них находятся на вашем компьютере, запуститеpg_lsclusters
:
$ pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log
Настройка по умолчанию для аутентификации (проверка /etc/postgresql/«version»/«cluster-name»/pg_hba.conf
— скорее всего/etc/postgresql/9.6/main/pg_hba.conf
)для локальных пользователей используется «идентификация» аутентификации, т. е. аутентификация под своим именем пользователя Unix, без запроса пароля, путем проверки того, какой пользователь работает psql
. Итак, чтобы попасть в базу данных, это должно сработать:
$ sudo -u postgres psql template1
Ваша команда не сработала, потому что вы заставили ее использовать TCP-соединение вместо локального сокета Unix (вы по-прежнему можете использовать параметр -p
, но -p 5432
используется по умолчанию, поэтому я его пропустил ). И аутентификация по умолчанию работает только через сокет Unix.
PS :Установка Debian PostgreSQL довольно удобна. Я лично использую его и рекомендую придерживаться его вместо того, чтобы пытаться удалить его и установить вышестоящие пакеты, если вам действительно не нужно (для получения определенной версии PostgreSQL, например ).