Lỗi xác thực không thành công xảy ra khi bạn cố gắng đăng nhập vào người dùng PostgreSQL của mình nhưng xác thực không thành công vì theo mặc định  psql kết nối qua socket UNIX sử dụng  peer xác thực thay vì xác thực mật khẩu.

Trong bài viết này, chúng ta sẽ tìm hiểu cách loại bỏ FATAL: Peer authentication failed for user với lỗi “postgres” của người dùng bằng cách thực thi xác thực mật khẩu qua phương thức ngang hàng của socket Unix,

Đầu tiên, điều hướng đến thư mục /etc/postgresql/10/main.

cd /etc/postgresql/10/main

Lưu ý rằng 10 là phiên bản PostgreSQL, nó có thể khác đối với bạn.

Đây là tệp pg_hba.conf mà chúng ta cần thực hiện một số thay đổi ở đây, bạn có thể cần quyền truy cập sudo cho tệp này.

sudo nano pg_hba.conf

Cuộn xuống tệp cho đến khi bạn tìm thấy cái này –

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

Ở đây thay đổi ngang hàng thành md5 như sau.

# Database administrative login by Unix domain socket
local   all             postgres                                md5
  • peer có nghĩa là nó sẽ tin tưởng tính xác thực của người dùng UNIX do đó không nhắc nhập mật khẩu.
  • md5 có nghĩa là nó sẽ luôn yêu cầu mật khẩu và xác thực nó sau khi băm với  MD5.

Bây giờ lưu tệp và khởi động lại máy chủ Postgres.

sudo service postgresql restart

Và đó là nó!

Hãy thử đăng nhập ngay bây giờ.

sudo -u postgres psql
Password: 
postgres=#
5 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments