Предполагая, что вы являетесь администратором машины, Ubuntu предоставила вам право sudo запускать любую команду от имени любого пользователя.
Также, если вы не ограничили права в pg_hba.conf
файле (в /etc/postgresql/9.1/main
каталоге), он должен содержать эту строку как первое правило:
local all postgres peer
(О местонахождении файла: 9.1
это основная версия postgres и main
имя вашего «кластера». Оно будет отличаться при использовании более новой версии postgres или нестандартных имен. Используйте pg_lsclusters
команду, чтобы получить эту информацию для вашей версии / системы).
В любом случае, если в pg_hba.conf
файле нет этой строки, отредактируйте файл, добавьте его и перезагрузите службу с помощью sudo service postgresql reload
.
Затем вы сможете войти в систему psql
как суперпользователь postgres с помощью этой команды оболочки:
sudo -u postgres psql
Оказавшись внутри psql, введите команду SQL:
ALTER USER postgres PASSWORD 'newpassword';
В этой команде postgres
- имя суперпользователя. Если был забыт пароль пользователя ritesh
, команда была бы такой:
ALTER USER ritesh PASSWORD 'newpassword';
Ссылки: Документация по PostgreSQL 9.1.13, Глава 19. Аутентификация клиента
Имейте в виду, что вам нужно вводить postgres с одним S в конце
Если оставить пароль открытым текстом в истории команд или в журнале сервера является проблемой, psql предоставляет интерактивную мета-команду, чтобы избежать этого, в качестве альтернативы ALTER USER ... PASSWORD
:
\password username
Он запрашивает пароль с двойным слепым вводом, затем хеширует его в соответствии с password_encryption
настройкой и выдает ALTER USER
команду серверу с хешированной версией пароля вместо версии с открытым текстом.