libpq
, thư viện máy khách PostgreQuery nằm bên dưới, có keepalives
tùy chọn kích hoạt các thủ tục TCP .
Có vẻ như PGAdmin-III không cho phép bạn chỉ định trực tiếp các tham số kết nối tùy ý, nhưng có một cách giải quyết.
Khi bạn nhìn vào cấu hình kết nối trong PGAdmin-III, bạn sẽ thấy tùy chọn "dịch vụ". Điều này đề cập đến các tập tin dịch vụ kết nối . Để sử dụng nó, hãy tạo một ~/.pg_service.conf
nội dung như:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
và khi kết nối từ PGAdmin-III, hãy nhập myherokudb
vào service
trường.
Điều này sẽ khiến PGAdmin-III sử dụng các tham số kết nối được chỉ định trong tệp dịch vụ, bao gồm cả cho phép lưu giữ.
(Nếu bạn đang ở trên Windows, tệp dịch vụ có thể ở một vị trí khác; xem tài liệu).
Không có biến môi trường libpq
để kiểm soát các khoản giữ, vì vậy bạn không thể đặt nó theo cách đó, bạn sẽ phải sử dụng tệp dịch vụ.
Việc thêm hỗ trợ cho các tham số kết nối bổ sung vào PGAdmin-III hoặc hộp kiểm trong các tùy chọn kết nối để kiểm soát tham số thủ tục, sẽ khá tầm thường. Tôi tự hỏi nếu Dave hiểu những gì bạn đang yêu cầu tái cung cấp của bạn để tài trợ cho công việc.
Cập nhật : Tệp dịch vụ được tra cứu tại vị trí được chỉ định trong PGSYSCONFDIR
biến môi trường. Nếu không được đặt, nó mặc định là một vị trí dành riêng cho nền tảng, dường như không được ghi lại đúng cách cho Windows. Tôi sẽ gửi một bản vá tài liệu. Các tài liệu cho.pgpass
thấy đường dẫn của nó như %APPDATA%\postgresql\pgpass.conf
thể, vì vậy ~/.pg_service.conf
nên %APPDATA%\postgresql\pg_service.conf
... nhưng dường như không phải vậy.
Trong thực tế, đường dẫn chính xác là:
%APPDATA%\postgresql\.pg_service.conf
Vì thế:
- Bắt đầu-> Chạy
- `% APPDATA%
- tạo thư mục "postgresql" nếu nó không tồn tại
- tạo tệp ".pg_service.conf" dưới dạng tệp văn bản với nội dung được cung cấp ở trên (xem ghi chú bên dưới đặt lại tên tệp)
- Trong PGAdmin-III, nhập "localhost" vào tên Máy chủ và tên dịch vụ trong trường dịch vụ.
Tôi đã thử nghiệm trên Windows và thấy rằng bạn không thể để host
trống trường trong PGAdmin-III trên Windows. PGAdmin-III dường như ghi đè bất kỳ máy chủ lưu trữ nào được chỉ định trong tệp dịch vụ với những gì được chỉ định trong hộp thoại kết nối. Vì vậy, bạn không nên bao gồm một host
khóa trong tệp dịch vụ. (Tôi sẽ báo cáo lỗi).
Làm cho "ẩn phần mở rộng tệp cho các loại tệp đã biết" bị tắt trong Windows, vì vậy bạn không vô tình gọi nó .pg_service.conf.txt
thay vào đó. Nếu bạn không chắc chắn liệu nó có đúng hay không, hãy kiểm tra cột "Loại" trong Windows Explorer trong chế độ xem danh sách; nó sẽ đọc "Tài liệu văn bản" nếu nó được đặt tên không chính xác .pg_service.conf.txt
và CONF File
nếu nó được đặt tên chính xác .pg_service.conf
. Nếu bạn gặp vấn đề khi đổi tên, hãy tắt "ẩn phần mở rộng tệp cho các loại tệp đã biết" hoặc sử dụng trình soạn thảo văn bản hợp lý như notepad ++ để cho phép bạn tạo các tệp có tên theo cách bạn muốn.
Lưu ý giai đoạn hàng đầu (dấu chấm) trong tên tệp. Vâng, điều đó khác với pgpass.conf
, và vâng, điều đó gây phiền nhiễu, giáp với một lỗi.