(Lưu ý: Không có nhiều nội dung này liên quan đến người đọc sử dụng PostgreSQL 9.2 trở lên từ trình cài đặt EDB, hiện có cài đặt mặc định được đơn giản hóa rất nhiều bằng cách sử dụng NETWORK SERVICE
, mặc dù bạn vẫn có thể định cấu hình các tài khoản khác) .
Tôi đã sử dụng net user postgres postgres
để đặt lại mật khẩu cho cơ sở dữ liệu của mình nhưng thay vì thông báo thành công tôi đang nhận được"System error 5 has occurred. Access is denied."
Bạn đã đặt lại (hoặc cố gắng đặt lại) mật khẩu tài khoản dịch vụ. PostgreQuery sẽ không chạy với tư cách Quản trị viên vì lý do bảo mật và trình cài đặt thường thiết lập nó với tài khoản người dùng "postgres" trong PostgreQuery 9.1 trở lên 1 . Trên Windows, bạn không thể bắt đầu dịch vụ với tư cách là người dùng mà không lưu mật khẩu của người dùng trong sổ đăng ký, vì vậy đó là những gì trình cài đặt làm.
Nếu bạn thay đổi mật khẩu cho tài khoản người dùng Windows postgres
, dịch vụ PostgreSQL không còn có thể bắt đầu. Vì vậy, đừng làm vậy, bạn sẽ phải sửa cấu hình dịch vụ để lưu mật khẩu đã cập nhật.
Rất may tôi nghĩ rằng một sai lầm khác ngăn cản bạn làm điều đó. Có vẻ như bạn có thể đang chạy dấu nhắc lệnh của mình mà không sử dụng "Chạy với tư cách quản trị viên" trên tài khoản người dùng Windows không có đặc quyền hoặc máy có UAC, do đó, nó không chạy với quyền truy cập cần thiết để thay đổi mật khẩu cho postgres
người dùng.
Trước khi bạn cố gắng thay đổi mật khẩu đó, hãy đảm bảo đó thực sự là những gì bạn muốn làm. Vấn đề bạn đang cố gắng giải quyết ở đây là gì? Bạn đang cố gắng cài đặt bản cập nhật cơ sở dữ liệu hay thứ gì khác đang yêu cầu mật khẩu cho postgres
người dùng Windows?
Nhiều khả năng bạn chỉ đang cố gắng đăng nhập vào cơ sở dữ liệu. Vì vậy, bạn sử dụng mật khẩu (không may hoàn toàn không liên quan) được lưu trữ trong cơ sở dữ liệu. Vì bạn đã mất / quên nên bạn sẽ phải đặt lại:
- Tìm của bạn
pg_hba.conf
, thường là trongC:\Program Files\PostgreSQL\9.1\data\pg_hba.conf
- Nếu cần thiết, hãy đặt quyền trên đó để bạn có thể sửa đổi nó; tài khoản người dùng của bạn có thể không thể làm như vậy cho đến khi bạn sử dụng tab bảo mật trong hộp thoại thuộc tính để cung cấp cho mình quyền đó bằng cách sử dụng ghi đè quản trị viên. Thay phiên, tìm notepad / notepad ++ trong menu bắt đầu của bạn, nhấp chuột phải, chọn "Chạy với tư cách quản trị viên", sau đó sử dụng Tệp-> Mở để mở
pg_hba.conf
theo cách đó.
Chỉnh sửa nó để đặt dòng "máy chủ" cho người dùng "postgres" trên máy chủ "127.0.0.1 / 32" thành "tin cậy". Bạn có thể thêm dòng nếu nó không có ở đó; chỉ cần chèn:
host all postgres 127.0.0.1/32 trust
host all postgres ::1/128 trust # if IPv6 is in use
trước bất kỳ dòng nào khác. (Bạn có thể bỏ qua ý kiến, dòng bắt đầu bằng #
).
Khởi động lại dịch vụ PostgreSQL từ bảng điều khiển Dịch vụ (bắt đầu-> chạy-> services.msc
)
- kết nối bằng psql hoặc PGAdmin-III hoặc bất cứ điều gì bạn thích
ALTER USER postgres PASSWORD 'postgres'
- xóa dòng bạn đã thêm
pg_hba.conf
hoặc thay đổi lại
- khởi động lại PostgreSQL một lần nữa.
Xem: Làm cách nào để đặt lại mật khẩu postgres cho PostgreSQL trên Windows?
1. 9.2 hiện sử dụng NETWORKSERVICE
tài khoản không yêu cầu mật khẩu, vì vậy vấn đề này không còn nữa .