(Catatan: Tidak banyak dari ini relevan bagi pembaca yang menggunakan PostgreSQL 9.2 atau lebih tinggi dari installer EDB, yang sekarang memiliki instalasi default yang sangat disederhanakan menggunakan NETWORK SERVICE
, meskipun Anda masih dapat mengonfigurasi akun lain) .
Saya sudah terbiasa net user postgres postgres
mengatur ulang kata sandi untuk basis data saya tetapi bukannya pesan sukses yang saya peroleh"System error 5 has occurred. Access is denied."
Anda telah mengatur ulang (atau mencoba mengatur ulang) kata sandi akun layanan. PostgreSQL tidak akan berjalan sebagai Administrator karena alasan keamanan dan penginstal umumnya mengaturnya dengan akun pengguna "postgres" di PostgreSQL 9.1 dan yang lebih lama 1 . Pada Windows Anda tidak dapat memulai layanan sebagai pengguna tanpa menyimpan kata sandi pengguna dalam registri, jadi itulah yang dilakukan oleh penginstal.
Jika Anda mengubah kata sandi untuk akun pengguna Windows postgres
, layanan PostgreSQL tidak dapat lagi dimulai. Jadi jangan lakukan itu, Anda harus memperbaiki konfigurasi layanan untuk menyimpan kata sandi yang diperbarui.
Untungnya saya pikir kesalahan lain mencegah Anda melakukan itu. Sepertinya Anda mungkin menjalankan command prompt Anda tanpa menggunakan "Run as Administrator" pada akun pengguna Windows yang tidak berhak atau mesin dengan UAC, jadi itu tidak berjalan dengan izin akses yang diperlukan untuk mengubah kata sandi untuk postgres
pengguna.
Sebelum Anda mencoba mengubah kata sandi itu, pastikan itu benar-benar yang ingin Anda lakukan. Apa masalah yang Anda coba selesaikan di sini? Apakah Anda mencoba menginstal pembaruan basis data atau sesuatu yang meminta kata sandi untuk postgres
pengguna Windows?
Kemungkinan besar Anda hanya mencoba masuk ke database. Untuk itu, Anda menggunakan kata sandi (sayangnya sama sekali tidak terkait) yang disimpan dalam database sendiri. Karena Anda kehilangan / melupakannya, Anda harus mengatur ulang:
- Temukan milik Anda
pg_hba.conf
, biasanya diC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- Jika perlu, atur izin di atasnya sehingga Anda dapat memodifikasinya; akun pengguna Anda mungkin tidak dapat melakukannya sampai Anda menggunakan tab keamanan di dialog properti untuk memberikan hak kepada diri Anda dengan menggunakan penggantian admin. Sebagai alternatif, cari notepad / notepad ++ di menu mulai Anda, klik kanan, pilih "Run as administrator", lalu gunakan File-> Open untuk membuka
pg_hba.conf
seperti itu.
Edit untuk menyetel baris "host" untuk "postgres" pada host "127.0.0.1/32" menjadi "trust". Anda dapat menambahkan baris jika tidak ada di sana; cukup masukkan:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
sebelum garis lain. (Anda dapat mengabaikan komentar, baris yang dimulai dengan #
).
Mulai ulang layanan PostgreSQL dari panel kontrol Layanan (start-> run-> services.msc
)
- terhubung menggunakan psql atau PgAdmin-III atau apa pun yang Anda suka
ALTER USER postgres PASSWORD 'postgres'
- hapus baris yang Anda tambahkan
pg_hba.conf
atau ubah kembali
- restart PostgreSQL lagi.
Lihat: Bagaimana cara mereset kata sandi postgres untuk PostgreSQL di Windows?
1. 9.2 sekarang menggunakan NETWORKSERVICE
akun, yang tidak memerlukan kata sandi, sehingga masalah ini hilang .