Назад | Перейти на главную страницу

Проблема с паролем PostgreSQL с psql

Я пытаюсь настроить PostgreSQL на CentOS (к которому я подключаюсь через SSH). Мне нужно распаковать пакет (чтобы не загружать через yum или rpm): http://get.enterprisedb.com/postgresql/postgresql-9.3.4-3-linux-x64-binaries.tar.gz и настроить это.

Я разархивировал и запустил следующее

./postgresql-9.3/bin/initdb -D data/
./postgresql-9.3/bin/postgres -D data/

Когда я пытаюсь бежать ./postgresql-9.3/bin/psql или createuser Меня спрашивают пароль, я ввожу его, но получаю: psql.bin: FATAL: password authentication failed for user "myusername"

Вопрос: Как мне сделать psql и createuser работай?

Дополнительная информация

Мой ./data/pg-hba.conf как следует:

local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust

Кроме того, похоже, что нет postgres пользователя в системе, что имеет смысл, поскольку я просто распаковываю tar.gz

Вы должны выполнить команду psql как административный пользователь, то есть postgres по умолчанию: sudo -u postgres psql postgres

(при условии, что вы добавили каталог postgres к своему пути, или sudo -u postgres ./postgresql-9.3/bin/psql postgres)

Как только вы войдете в консоль psql, \password postgres и введите свой новый пароль

Во-первых, пользователи postgres и пользователи вашей операционной системы - не одно и то же, кроме как по умолчанию.

Если вы не создадите реальный postgres системный аккаунт на вашем компьютере, вам нужно будет отредактировать pg_hba.conf файл и настройте методы аутентификации. По умолчанию должна быть строка вроде

local   all             postgres                                peer

Что говорит ему позволить postgres суперпользователь входит в систему локально, если человек, запускающий psql, использует учетную запись операционной системы, также названную postgres. Если вы измените peer к trust тогда это позволит любому войти в систему локально с psql -U postgres. Как только вы подключитесь, вы сможете создавать других пользователей с их паролями.

После того, как все настроено, для безопасности вы должны установить пароль на postgres пользователь, затем измените trust к md5 для запроса пароля для подключения.