Я сделал следующую запись в 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