Khi các câu trả lời khác giải quyết các lựa chọn thay thế khác, tôi đoán tôi có thể cung cấp một số thông tin về Máy chủ Mac OS X trên Lion. Tôi chạy vào vấn đề rất giống nhau - trong trường hợp của tôi thậm chí -h localhost
không hoạt động như mạng đã bị vô hiệu hóa trong PostregSQL đó là bằng cách trong nhiều trường hợp ý tưởng rất tốt. Vấn đề với Mac OS X Server là nó khởi chạy máy chủ PostgreSQL thông qua launchd
.
Một số gợi ý khi bạn đi xung quanh:
serveradmin
dịch vụ: postgres
launchd
tập tin cấu hình: /System/Library/LaunchDaemons/org.postgresql.postgres.plist
- cơ sở dữ liệu thư mục:
/var/pgsql
- ổ cắm folder:
/var/pgsql_socket
Đó con tệp hình ảnh ghi đè một số chỉ thị cấu hình có thể được tìm thấy trong postgresql.conf
trong thư mục cơ sở dữ liệu. Đặc biệt hai:
unix_socket_group
unix_socket_permissions
Bạn có thể thấy rằng _postgres
tài khoản được sử dụng để chạy các máy chủ và tất cả mọi thứ cũng có thể truy cập nếu người dùng hoạt động là thành viên của nhóm _postgres
.
Bằng cách chạy dscl . -read /Groups/_postgres GroupMembership
bạn có thể thấy rằng theo mặc định rằng nhóm có các thành viên: _devicemgr
_calendar
_teamsserver
_www
Tôi đoán bạn có hai lựa chọn. Thêm chính bạn vào nhóm _postgres hoặc thay đổi launchd
tệp cấu hình plist. Sau đó chỉ là chỉnh sửa văn bản thuần túy ...Nhưng hãy cẩn thận về bảo mật, bởi vì theo cách này bạn sẽ mở Server để đáp ứng bất cứ tiêu chí nào bạn thay đổi (xem đoạn cuối).
Trước đây có thể được thực hiện thông qua Server.app
hoặc qua dscl
tiện ích dòng lệnh. Tùy chọn đầu tiên có thể không cần thêm bất kỳ thứ gì. Chỉ cần đảm bảo rằng bạn có thể xem Tài khoản hệ thống (Xem -> Ẩn/Hiển thị tài khoản hệ thống). Tôi là loại CLI nghiện vì vậy đây nên thêm người dùng của bạn để _postgres
nhóm:
sudo dscl . -append /Groups/_postgres GroupMembership $USER
Tất nhiên bạn nên cẩn thận những gì bạn chạy dưới tài khoản của bạn sau đó bởi vì bạn đang đem lại quyền truy cập vào cơ sở dữ liệu bạn Máy chủ Mac OS X back-end. Vì vậy, hãy đảm bảo an toàn cho bạn tài khoản _postgres
hoặc tạo người dùng riêng để thao tác cơ sở dữ liệu của bạn hoặc không lưu bất cứ điều gì riêng tư ở đó.
+1 cho công tắc '-h', hoạt động tốt cho kết nối cục bộ (dấu gạch chéo ở đầu). Đường dẫn của miền của miền Unix được xác định bởi thuộc tính ['unix_socket_directory'] (http://www.postgresql.org/docs/current/static/runtime-config-connection.html#GUC-UNIX-SOCKET-DIRECTORY) trong' postgresql .conf'. –
Thuộc tính 'unix_socket_directory' có thể trống (tôi chưa bao giờ thấy nó được đặt), trong trường hợp này có lẽ mặc định là/tmp /. – wildplasser
Cảm ơn bạn đã tip- Tôi đang sử dụng các gói OS X tiêu chuẩn từ postgres, giải thích cài đặt socket unix-domain. – Wells