Сброс пароля PostgreSQL на ubuntu

Я использую Ubuntu. За несколько дней до того, как я установил базу данных Postgresql для рубинов на рельсах. Я создал суперпользователя для сервера базы данных, и я забыл пароль суперпользователя postgresql. Может кто-нибудь помочь, как reset пароль для суперпользователя. Одна вещь, которую я пробовал, я удалил, а затем снова установил, но ее суперпользователь сохранен, который ранее был создан.

Ответ 1

Предполагая, что вы являетесь администратором машины, Ubuntu предоставил вам право sudo выполнять любую команду как любой пользователь.
Предполагая, что вы не ограничили права в файле pg_hba.conf (в каталоге /etc/postgresql/9.1/main), он должен содержать эту строку в качестве первого правила:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(О расположении файла: 9.1 - это основная версия postgres и main имя вашего "кластера". Оно будет отличаться при использовании более новой версии имен postgres или non-default. Используйте 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 в конце