Đặt lại mật khẩu của PostgreSQL trên Ubuntu [đã đóng]


91

Trong Ubuntu, tôi đã cài đặt cơ sở dữ liệu PostgreSQL và tạo một superuser cho máy chủ.

Nếu tôi quên mật khẩu của postgresql superuser, tôi có thể đặt lại mật khẩu (mật khẩu) cho người dùng đó bằng cách nào?

Tôi đã thử gỡ cài đặt nó và sau đó cài đặt lại nhưng superuser đã tạo trước đó vẫn được giữ lại.

Câu trả lời:


208

Giả sử bạn đang quản trị của máy, Ubuntu đã cấp cho bạn quyền sudo để chạy bất kỳ lệnh như bất kỳ người dùng.
Cũng giả sử bạn không hạn chế quyền trong pg_hba.conftệp (trong /etc/postgresql/9.1/mainthư mục), thì nó phải chứa dòng này làm quy tắc đầu tiên:

# Database administrative login by Unix domain socket  
local   all             postgres                                peer

(Giới thiệu về vị trí tệp: 9.1là phiên bản postgres chính và maintên của "cụm" của bạn. Nó sẽ khác nếu sử dụng phiên bản postgres mới hơn hoặc tên không phải mặc định. Sử dụngpg_lsclusters lệnh để lấy thông tin này cho phiên bản / hệ thống của bạn).

Dù sao, nếu pg_hba.conftệp không có dòng đó, hãy chỉnh sửa tệp, thêm nó và tải lại dịch vụ bằng sudo service postgresql reload.

Sau đó, bạn sẽ có thể đăng nhập với psqltư cách là superuser postgres bằng lệnh shell này:

sudo -u postgres psql

Khi bên trong psql, hãy phát hành lệnh SQL:

ALTER USER postgres PASSWORD 'newpassword';

Trong lệnh này, postgreslà tên của một siêu người dùng. Nếu người dùng bị quên mật khẩu ritesh, lệnh sẽ là:

ALTER USER ritesh PASSWORD 'newpassword';

Người giới thiệu: PostgreSQL 9.1.13, Chương 19. Xác thực máy khách

Hãy nhớ rằng bạn cần nhập postgres bằng một chữ S duy nhất ở cuối


2
Tôi đã sử dụng phương pháp của bạn Tên người dùng cấp cao của tôi là ritesh pg_hba.conf của tôi là như những gì bạn đã đề cập. Tôi chạy lệnh "ALTER USER postgres PASSWORD 'newpassword';" bảng điều khiển đang hiển thị 'ALTER ROLE'. Sau đó, tôi đã thoát bằng ctrl + c sau đó tôi chạy lệnh createuser. Nó đang hiển thị để nhập mật khẩu tôi đã nhập mật khẩu mới nhưng nó đang cho tôi lỗi "createuser: không thể kết nối với cơ sở dữ liệu postgres: FATAL : xác thực mật khẩu không thành công cho người dùng "ritesh" ". làm thế nào để tạo người dùng và mật khẩu phải là gì cho lệnh này ??
Ritesh Mehandiratta

Nếu bạn muốn thay đổi mật khẩu cho ritesh, thay đổi SQL ở trên đểALTER USER ritesh PASSWORD 'newpassword'
Daniel vérité

bạn nên khởi động lại sau khi postgres pg_hba.conf thay đổi ....
Mahdi

1
Không cần khởi động lại, chỉ cần tải lại pg_ctl.
hbn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.