pg_hba.conf
của bạn thực sự sẽ yêu cầu mật khẩu cho các kết nối unix socket, nhưng vẫn có những cách giải quyết vấn đề mà bạn nên xác minh:
-
một
.pgpass
tệp trong thư mục chính postgres có chứa mật khẩu (cũng kiểm tra PGPASSFILE biến môi trường cho một đường dẫn không chuẩn). -
PGPASSWORD biến môi trường có thể được đặt.
Và cũng có khả năng bạn đang chỉnh sửa sai tệp pg_hba.conf. Khi được kết nối dưới dạng postgres, bạn có thể lấy đường dẫn chính xác để xác minh với SHOW hba_file
Lệnh SQL.
Ngoài ra, bạn có thể muốn kiểm tra tệp nhật ký, /var/log/postgresql/postgresql-9.1-main.log
để xác nhận rằng các tệp cấu hình được tải lại khi bạn yêu cầu và tìm kiếm bất kỳ thông báo nghi ngờ nào trong quá trình xác thực.
Về lý do tại sao kết nối không mật khẩu với người dùng postgres lại phổ biến, debian PG-9.1 pg_hba.conf
có nhận xét này về việc không cho phép chúng:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database superuser can access the database using some other method.
# Noninteractive access to all databases is required during automatic
# maintenance (custom daily cronjobs, replication, and similar tasks).
#
# Database administrative login by Unix domain socket
local all postgres peer
Vì Debian và Ubuntu sử dụng các gói postgres giống nhau, điều này cũng áp dụng cho Ubuntu.