Скидання пароля 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.