Сброс пароля PostgreSQL в Ubuntu

60

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

Теги:
postgresql-9.1

1 ответ

152
Лучший ответ

Предполагая, что вы являетесь администратором машины, 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 в конце

  • 2
    я использовал ваш метод, мое имя супер-пользователя - ritesh, мой pg_hba.conf - это то, что вы упомянули. я запускаю команду "ALTER USER postgres PASSWORD 'newpassword';" консоль показывает «ALTER ROLE». Затем я вышел, используя ctrl + c, после чего я запускаю команду createuser. Он показывает, что для ввода пароля я ввел новый пароль, но выдает ошибку «createuser: не удалось подключиться к базе данных postgres: FATAL : аутентификация по паролю не удалась для пользователя "ritesh" ". как создать пользователя и каким должен быть пароль для этой команды ??
  • 0
    Если вы хотите изменить пароль для ritesh , измените приведенный выше SQL на ALTER USER ritesh PASSWORD 'newpassword'
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню