Скидання пароля PostgreSQL на Ubuntu [закрито]


91

В Ubuntu я встановив базу даних PostgreSQL і створив суперкористувач для сервера.

Якщо я забув пароль суперкористувача postgresql, як я можу скинути його (пароль) для цього користувача?

Я спробував видалити його, а потім встановити знову, але створений раніше суперкористувач зберігається.

Відповіді:


208

Припускаючи, що ви адміністратор машини, 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 або неіменні імена. Використовуйте 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. він показує, щоб ввести пароль, який я ввів newpassword, але це видає мені помилку "createuser: не вдалося підключитися до postgres бази даних: FATAL : помилка автентифікації пароля для користувача "ritesh" ". як створити користувача та яким повинен бути пароль для цієї команди ??
Ritesh Mehandiratta

Якщо ви хочете змінити пароль для ritesh, змініть SQL вище наALTER USER ritesh PASSWORD 'newpassword'
Daniel Vérité

вам слід перезапустити postgres після зміни pg_hba.conf ....
Махді

1
Не потрібно перезапускати, просто використовуйте pg_ctl reload.
hbn
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.