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

Невозможно изменить пароль для пользователя postgres в postgresql

Я сделал следующую запись в pg_hba.conf

местные все доверяют

но все равно

su postgres ru

не принимает пустое поле в качестве пароля. Я не могу запускать ни psql, ни pg_ctl по той же причине, что и большинство файлов принадлежит postgres.

РЕДАКТИРОВАТЬ1

dhaval@ubuntu:~$ su -c "pg_ctl reload -D template1"
Password: 
su: Authentication failure

dhaval@ubuntu:~$ su -c psql
Password: 
su: Authentication failure

Я даю пароль root выше, но я предполагаю, что это ожидаемый пароль суперпользователя postgres. У меня нет того же. Мне нужно его сбросить.

EDIt2

dhaval@ubuntu:~$ sudo -i -u postgres
[sudo] password for dhaval:
postgres@ubuntu:~$ psql
Welcome to psql 8.3.7, the PostgreSQL interactive terminal.

Вышесказанное заняло у меня командную строку postgreSQL. Но я до сих пор не уверен, почему «доверие» не сработало.

Операционная система Пароли пользователей (то, что вас просят, когда вы пытаетесь выполнить su) не совпадают с Postgres Пароли пользователей (то, что вам не нужно, когда вы устанавливаете аутентификацию на trust в pg_hba.conf).

Вам необходимо установить действительный Операционные системы пароль для Операционная системапользователя postgres и введите этот пароль, чтобы выполнить su для этого пользователя (или su для этого пользователя от root, где у вас не будет запрашиваться пароль).

Обычно postgres Операционные системы пароль пользователя блокируется после инициализации БД, поскольку единственное, что нужно запускать как postgres, - это pg_ctl, который можно запустить с su -c из ваших сценариев инициализации (которые запускаются от имени пользователя root и поэтому не нуждаются в пароле).

Скорее всего, вы пытаетесь выполнить su postgres. Ubuntu не позволяет пользователю без полномочий root переключаться на другого пользователя. Таким образом, вам может потребоваться использовать root, а затем su postgres.

Чтобы стать root, попробуйте:

sudo su -

После этого попробуйте:

su postgres ru

Это должно дать вам доступ как пользователь postgres в понимании ОС.

Надеюсь это поможет.

лучший Vishal Belsare