Các chức năng sau liên quan đến việc tạo tỷ lệ kèo bóng đá với APostgreSQLMáy chủ phụ trợ. Một chương trình ứng dụng có thể có một số tỷ lệ kèo bóng đá phụ trợ mở cùng một lúc.PGConn
Đối tượng, được lấy từ chức năngPQConnectDB
, PQConnectDBParams
hoặcpqsetDbLogin
. Lưu ý rằng tỷ lệ kèo bóng đá chức năng này sẽ luôn trả về một con trỏ đối tượng không null, trừ khi có lẽ có quá ít bộ nhớ để phân bổPGConn
Đối tượng. Thepqstatus
Hàm nên được gọi để kiểm tra giá trị trả về cho tỷ lệ kèo bóng đá thành công trước khi các truy vấn được gửi qua đối tượng tỷ lệ kèo bóng đá.
Nếu người dùng không tin cậy có quyền truy cập vào cơ sở dữ liệu chưa áp dụngmẫu sử dụng lược đồ an toàn, Bắt đầu mỗi phiên bằng cách loại bỏ tỷ lệ kèo bóng đá lược đồ công khai từ-từsearch_path
. Một người có thể đặt từ khóa tham sốTùy chọn
đến value-csearch_path =
. Xen kẽ, người ta có thể phát hànhPQEXEC (
Sau khi tỷ lệ kèo bóng đá. Sự cân nhắc này không cụ thể cholibpq; Nó áp dụng cho mọi giao diện để thực thi tỷ lệ kèo bóng đá lệnh SQL tùy ý.Conn
, "Chọn pg_catalog.set_config ('search_path', '', false)")
Trên Unix, việc đưa ra một quy trình với các tỷ lệ kèo bóng đá LibPQ mở có thể dẫn đến kết quả không thể đoán trước vì các quy trình của cha mẹ và con có chung các ổ cắm và tài nguyên hệ điều hành. Vì lý do này, việc sử dụng như vậy không được khuyến khích, mặc dù làmEXEC
Từ quy trình con để tải một thực thi mới là an toàn.
PQConnectDBParams
#Tạo tỷ lệ kèo bóng đá mới với máy chủ cơ sở dữ liệu.
PGConn *PQConnectDbParams (const char *const *từ khóa, từ khóa,
Hàm này mở tỷ lệ kèo bóng đá cơ sở dữ liệu mới bằng cách sử dụng các tham số được lấy từ hainull
Mảng được tỷ lệ kèo bóng đá thúc. Đầu tiên,Từ khóa
, được định nghĩa là một mảng tỷ lệ kèo bóng đá chuỗi, mỗi chuỗi là một từ khóa. Thứ hai,Giá trị
, đưa ra giá trị cho mỗi từ khóa. Không giống nhưPQSetDbLogin
bên dưới, bộ tham số có thể được mở rộng mà không thay đổi chữ ký chức năng, vì vậy hãy sử dụng chức năng này (hoặc tỷ lệ kèo bóng đá chất tương tự không chặn của nóPQConnectStartParams
vàPQConnectPoll
) được ưu tiên cho lập trình ứng dụng mới.
tỷ lệ kèo bóng đá từ khóa tham số hiện được công nhận được liệt kê trongPhần 32.1.2.
Mảng được truyền có thể trống để sử dụng tất cả tỷ lệ kèo bóng đá tham số mặc định hoặc có thể chứa một hoặc nhiều cài đặt tham số. Chúng phải được khớp với chiều dài.null
Nhập vàoTừ khóa
Mảng. Ngoài ra, nếuGiá trị
mục liên quan đến khôngnull
Từ khóa
mục lànull
hoặc một chuỗi trống, mục nhập đó bị bỏ qua và xử lý tiếp tục với tỷ lệ kèo bóng đá mục nhập mảng tiếp theo.
Khiexpand_dbname
là khác không, giá trị cho đầu tiêndbname
Từ khóa được kiểm tra để xem đó có phải làchuỗi tỷ lệ kèo bóng đá. Nếu vậy, nó làMở rộngHồivào các tham số tỷ lệ kèo bóng đá riêng lẻ được trích xuất từ chuỗi. Giá trị được coi là chuỗi tỷ lệ kèo bóng đá, thay vì chỉ tên cơ sở dữ liệu, nếu nó chứa một dấu bằng (=
) Hoặc nó bắt đầu bằng một trình thiết kế sơ đồ URI. (Thông tin chi tiết về các định dạng chuỗi tỷ lệ kèo bóng đá xuất hiện trongPhần 32.1.1.) Chỉ lần xuất hiện đầu tiên củadbname
được xử lý theo cách này; bất kỳ sau đódbname
Tham số được xử lý dưới dạng tên cơ sở dữ liệu đơn giản.
Nói chung, tỷ lệ kèo bóng đá mảng tham số được xử lý từ đầu đến cuối. Nếu bất kỳ từ khóa nào được lặp lại, giá trị cuối cùng (không phảinull
hoặc trống) được sử dụng. Quy tắc này được áp dụng cụ thể khi một từ khóa được tìm thấy trong một chuỗi tỷ lệ kèo bóng đá xung đột với một từ xuất hiện trongTừ khóa
Mảng. Do đó, lập trình viên có thể xác định xem các mục nhập mảng có thể ghi đè hoặc được ghi đè bởi các giá trị được lấy từ chuỗi tỷ lệ kèo bóng đá hay không.dbname
Mục nhập có thể bị ghi đè bởi các trường của chuỗi tỷ lệ kèo bóng đá và lần lượt các trường đó được ghi đè bởi các mục nhập mảng xuất hiện saudbname
(Nhưng, một lần nữa, chỉ khi tỷ lệ kèo bóng đá mục đó cung cấp tỷ lệ kèo bóng đá giá trị không trống).
Sau khi xử lý tất cả các mục nhập mảng và bất kỳ chuỗi tỷ lệ kèo bóng đá mở rộng nào, bất kỳ tham số tỷ lệ kèo bóng đá nào vẫn không được đặt với các giá trị mặc định. Nếu biến môi trường tương ứng của tham số Undet (xemPhần 32.15) được đặt, giá trị của nó được sử dụng. Nếu biến môi trường cũng không được đặt, thì giá trị mặc định tích hợp của tham số được sử dụng.
PQConnectDB
#Tạo tỷ lệ kèo bóng đá mới với máy chủ cơ sở dữ liệu.
PGConn *PQConnectDB (const char *Conninfo);
Hàm này mở tỷ lệ kèo bóng đá cơ sở dữ liệu mới bằng cách sử dụng các tham số được lấy từ chuỗiConninfo
.
Chuỗi truyền có thể trống để sử dụng tất cả tỷ lệ kèo bóng đá tham số mặc định hoặc nó có thể chứa một hoặc nhiều cài đặt tham số được phân tách bằng khoảng trắng hoặc nó có thể chứaURI. Nhìn thấyPhần 32.1.1để biết chi tiết.
PQSetDbLogin
#Tạo tỷ lệ kèo bóng đá mới với máy chủ cơ sở dữ liệu.
PGConn *pqsetdblogin (const char *pghost,
Đây là tiền thân củaPQConnectDB
Với một tập hợp tỷ lệ kèo bóng đá tham số cố định. Nó có cùng chức năng ngoại trừ tỷ lệ kèo bóng đá tham số bị thiếu sẽ luôn mang tỷ lệ kèo bóng đá giá trị mặc định.null
hoặc một chuỗi trống cho bất kỳ một trong tỷ lệ kèo bóng đá tham số cố định được mặc định.
Nếudbname
chứa=
dấu hiệu hoặc có tỷ lệ kèo bóng đá hợp lệuritiền tố, nó được lấy dưới dạngConninfo
Chuỗi theo cách tương tự như thể nó đã được truyền choPQConnectDB
và tỷ lệ kèo bóng đá tham số còn lại sau đó được áp dụng theo quy định choPQConnectDBParams
.
pgtty
không còn được sử dụng và bất kỳ giá trị nào được thông qua sẽ bị bỏ qua.
PQSetDB
#Tạo tỷ lệ kèo bóng đá mới với máy chủ cơ sở dữ liệu.
PGConn *PQSetDB (char *pghost,
Đây là một macro gọiPQSetDbLogin
với tỷ lệ kèo bóng đá con trỏ null choĐăng nhập
vàPWD
tham số. Nó được cung cấp để tương thích ngược với tỷ lệ kèo bóng đá chương trình rất cũ.
PQConnectStartParams
PQConnectStart
PQConnectPoll
#Tạo tỷ lệ kèo bóng đá với máy chủ cơ sở dữ liệu theo cách không chặn.
PGConn *PQConnectStartParams (const char *const *từ khóa, từ khóa,
Ba chức năng này được sử dụng để mở tỷ lệ kèo bóng đá với máy chủ cơ sở dữ liệu sao cho chủ đề thực thi ứng dụng của bạn không bị chặn trên I/O từ xa trong khi làm như vậy. Điểm của phương pháp này là sự chờ đợi cho I/O hoàn thành có thể xảy ra trong vòng chính của ứng dụng, thay vì xuống bên trongPQConnectDBParams
hoặcPQConnectDB
, và vì vậy ứng dụng có thể quản lý hoạt động này song song với tỷ lệ kèo bóng đá hoạt động khác.
vớiPQConnectStartParams
, tỷ lệ kèo bóng đá cơ sở dữ liệu được tạo bằng các tham số được lấy từTừ khóa
vàGiá trị
mảng và được kiểm soát bởiexpand_dbname
, như được mô tả ở trên choPQConnectDBParams
.
vớiPQConnectStart
, tỷ lệ kèo bóng đá cơ sở dữ liệu được tạo bằng các tham số được lấy từ chuỗiConninfo
Như được mô tả ở trên choPQConnectDB
.
KhôngPQConnectStartParams
cũng khôngPQConnectStart
cũng khôngPQConnectPoll
Sẽ chặn, miễn là một số hạn chế được đáp ứng:
Thehostaddr
tham số phải được sử dụng một cách thích hợp để ngăn tỷ lệ kèo bóng đá truy vấn DNS được thực hiện. Xem tài liệu của tham số này trongPhần 32.1.2Để biết chi tiết.
Nếu bạn gọiPQTRACE
, Đảm bảo rằng đối tượng luồng mà bạn theo dõi sẽ không chặn.
Bạn phải đảm bảo rằng ổ cắm ở trạng thái thích hợp trước khi gọiPQConnectPoll
, như được mô tả bên dưới.
Để bắt đầu yêu cầu tỷ lệ kèo bóng đá không chặn, hãy gọiPQConnectStart
hoặcPQConnectStartParams
. Nếu tỷ lệ kèo bóng đá quả là null, thìlibpqđã không thể phân bổ mớiPGConn
Cấu trúc. Nếu không, một hợp lệPGConn
Con trỏ được trả về (mặc dù chưa đại diện cho tỷ lệ kèo bóng đá hợp lệ với cơ sở dữ liệu). Cuộc gọi tiếp theopqstatus (Conn)
. Nếu tỷ lệ kèo bóng đá quả làConnection_Bad
, cố gắng tỷ lệ kèo bóng đá đã thất bại, thường là do các tham số tỷ lệ kèo bóng đá không hợp lệ.
nếuPQConnectStart
hoặcPQConnectStartParams
Thành công, giai đoạn tiếp theo là thăm dò ý kiếnlibpqđể nó có thể tiến hành trình tự tỷ lệ kèo bóng đá. Sử dụngPQSocket (Conn)
Để có được bộ mô tả của ổ cắm bên dưới tỷ lệ kèo bóng đá cơ sở dữ liệu. (THẬN TRỌNG: Không cho rằng ổ cắm vẫn giống nhauPQConnectPoll
cuộc gọi.) Vòng lặp như vậy: nếuPQConnectPoll (Conn)
Đã trả về lần cuốipgres_polling_reading
, đợi cho đến khi ổ cắm sẵn sàng để đọc (như được chỉ ra bởiselect ()
, poll ()
hoặc chức năng hệ thống tương tự). Lưu ý rằngPQSocketPoll
Có thể giúp giảm tấm nồi hơi bằng cách trừu tượng hóa thiết lậpChọn (2)
hoặcPoll (2)
Nếu nó có sẵn trên hệ thống của bạn. Sau đó gọiPQConnectPoll (Conn)
Một lần nữa. Ngược lại, nếuPQConnectPoll (Conn)
Đã trả lại lần cuốiPGRES_POLLING_WRITY
, đợi cho đến khi ổ cắm sẵn sàng để viết, sau đó gọiPQConnectPoll (Conn)
Một lần nữa. Trên lần lặp đầu tiên, tức là, nếu bạn chưa gọiPQConnectPoll
, hành xử như thể nó đã trả về lần cuốiPGRES_POLLING_WRITY
. Tiếp tục vòng lặp này cho đến khiPQConnectPoll (Conn)
returnPGRES_POLLING_FAILED
, Cho biết quy trình tỷ lệ kèo bóng đá đã thất bại hoặcpgres_polling_ok
, cho biết tỷ lệ kèo bóng đá đã được thực hiện thành công.
Bất cứ lúc nào trong quá trình tỷ lệ kèo bóng đá, trạng thái của tỷ lệ kèo bóng đá có thể được kiểm tra bằng cách gọipqstatus
. Nếu cuộc gọi này trả vềConnection_Bad
, sau đó quy trình tỷ lệ kèo bóng đá đã thất bại; Nếu cuộc gọi trả vềConnection_ok
, sau đó tỷ lệ kèo bóng đá đã sẵn sàng. Cả hai trạng thái này đều có thể phát hiện như nhau từ giá trị trả về củaPQConnectPoll
, được mô tả ở trên. Các trạng thái khác cũng có thể xảy ra trong (và chỉ trong) một thủ tục tỷ lệ kèo bóng đá không đồng bộ.
Connection_started
#Đang chờ tỷ lệ kèo bóng đá được thực hiện.
Connection_Made
#tỷ lệ kèo bóng đá OK; chờ gửi.
Connection_Awaiting_Response
#Đang chờ phản hồi từ tỷ lệ kèo bóng đá chủ.
Connection_Auth_ok
#nhận được xác thực; Đang chờ phần hoàn thành khởi động.
Connection_SSL_startup
#Đàm phán mã hóa SSL.
Connection_GSS_startup
#Đàm phán mã hóa GSS.
Connection_check_writable
#Kiểm tra xem tỷ lệ kèo bóng đá có thể xử lý các giao dịch ghi không.
Connection_check_standby
#Kiểm tra xem tỷ lệ kèo bóng đá với máy chủ ở chế độ chờ.
Connection_consume
#Tiêu thụ bất kỳ thông báo phản hồi còn lại nào trên tỷ lệ kèo bóng đá.
Lưu ý rằng, mặc dù tỷ lệ kèo bóng đá hằng số này sẽ vẫn (để duy trì khả năng tương thích), một ứng dụng không bao giờ nên dựa vào chúng xảy ra theo một thứ tự cụ thể, hoặc hoàn toàn, hoặc theo trạng thái luôn luôn là một trong những giá trị được ghi nhận này. Một ứng dụng có thể làm điều gì đó như thế này:
Switch (pqstatus (Conn))
TheConnect_Timeout
Tham số tỷ lệ kèo bóng đá bị bỏ qua khi sử dụngPQConnectPoll
; Trách nhiệm của ứng dụng là quyết định xem một lượng thời gian quá mức đã trôi qua.PQConnectStart
theo sau làPQConnectPoll
Vòng lặp tương đương vớiPQConnectDB
.
Lưu ý rằng khiPQConnectStart
hoặcPQConnectStartParams
Trả về một con trỏ không null, bạn phải gọipqfinish
Khi bạn kết thúc với nó, để xử lý cấu trúc và bất kỳ khối bộ nhớ liên quan nào. Điều này phải được thực hiện ngay cả khi cố gắng tỷ lệ kèo bóng đá thất bại hoặc bị bỏ rơi.
PQSocketPoll
#Thăm dò ý kiến mô tả ổ cắm cơ bản của tỷ lệ kèo bóng đá được truy xuất vớiPQSocket
. Việc sử dụng chính của chức năng này là lặp đi lặp lại thông qua chuỗi tỷ lệ kèo bóng đá được mô tả trong tài liệu củaPQConnectStartParams
.
typedef pg_int64 pg_usec_time_t;
Hàm này thực hiện bỏ phiếu của một mô tả tệp, tùy chọn với thời gian chờ. Nếu nhưforread
là không khác, chức năng sẽ chấm dứt khi ổ cắm sẵn sàng để đọc. Nếu nhưforwrite
là không khác, chức năng sẽ chấm dứt khi ổ cắm sẵn sàng để viết.
Thời gian chờ được chỉ định bởiend_time
, đó là thời gian để ngừng chờ đợi được thể hiện dưới dạng một số micro giây kể từ thời đại unix (nghĩa làtime_t
lần 1 triệu). Hết thời gian là vô hạn nếuend_time
là-1
. Thời gian chờ là ngay lập tức (không chặn) nếu end_time là0
(hoặc thực sự, bất cứ lúc nào trước đây). Các giá trị thời gian chờ có thể được tính thuận tiện bằng cách thêm số lượng micro giây mong muốn vào tỷ lệ kèo bóng đá quả củaPQGetCienTimeUsec
. Lưu ý rằng tỷ lệ kèo bóng đá cuộc gọi hệ thống cơ bản có thể có ít hơn độ chính xác của micro, do đó độ trễ thực tế có thể không chính xác.
Hàm trả về giá trị lớn hơn0
Nếu điều kiện được chỉ định được đáp ứng,0
Nếu thời gian chờ xảy ra hoặc-1
Nếu xảy ra lỗi. Có thể lấy lỗi bằng cách kiểm traerrno (3)
Giá trị. Trong trường hợp cả haiforread
vàforwrite
bằng không, hàm ngay lập tức trả về chỉ báo thời gian chờ.
PQSocketPoll
được triển khai bằng cách sử dụngPoll (2)
hoặcChọn (2)
, tùy thuộc vào nền tảng. Nhìn thấyPollin
vàPolout
từPoll (2)
hoặcReadFDS
vàWriteFDS
từChọn (2)
, để biết thêm thông tin.
PQConnDefaults
#Trả về các tùy chọn tỷ lệ kèo bóng đá mặc định.
PQConnInFooption *PQConnDefaults (void);
Trả về mảng tùy chọn tỷ lệ kèo bóng đá. Điều này có thể được sử dụng để xác định tất cả có thểPQConnectDB
Tùy chọn và tỷ lệ kèo bóng đá giá trị mặc định hiện tại của chúng. Giá trị trả về chỉ vào một mảngPQConninFooption
Cấu trúc, tỷ lệ kèo bóng đá thúc bằng một mục có nullTừ khóa
Con trỏ. Con trỏ null được trả về nếu bộ nhớ không thể được phân bổ.Val
Trường) sẽ phụ thuộc vào tỷ lệ kèo bóng đá biến môi trường và bối cảnh khác. Một tệp dịch vụ bị thiếu hoặc không hợp lệ sẽ bị bỏ qua âm thầm.
Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách chuyển nó sangPQConnInfofree
. Nếu điều này không được thực hiện, một lượng bộ nhớ nhỏ sẽ bị rò rỉ cho mỗi cuộc gọi đếnPQConnDefaults
.
PQConnInfo
#Trả về các tùy chọn tỷ lệ kèo bóng đá được sử dụng bởi tỷ lệ kèo bóng đá trực tiếp.
Trả về mảng tùy chọn tỷ lệ kèo bóng đá. Điều này có thể được sử dụng để xác định tất cả có thểPQConnectDB
Tùy chọn và các giá trị được sử dụng để tỷ lệ kèo bóng đá với máy chủ. Giá trị trả về chỉ vào một mảngPQConninFooption
Cấu trúc, tỷ lệ kèo bóng đá thúc bằng một mục có nullTừ khóa
Con trỏ. Tất cả tỷ lệ kèo bóng đá ghi chú ở trên choPQConnDefaults
Cũng áp dụng cho tỷ lệ kèo bóng đá quả củaPQConnInfo
.
PQConnInfoparse
#Trả về các tùy chọn tỷ lệ kèo bóng đá phân tích cú pháp từ chuỗi tỷ lệ kèo bóng đá được cung cấp.
39599_39674
Phân tích chuỗi tỷ lệ kèo bóng đá và trả về các tùy chọn kết quả dưới dạng mảng; hoặc trả lạinull
Nếu có vấn đề với chuỗi tỷ lệ kèo bóng đá. Chức năng này có thể được sử dụng để trích xuấtPQConnectDB
Tùy chọn trong chuỗi tỷ lệ kèo bóng đá được cung cấp. Giá trị trả về chỉ vào một mảngPQConninFooption
Cấu trúc, tỷ lệ kèo bóng đá thúc bằng một mục có nullTừ khóa
Con trỏ.
Tất cả các tùy chọn pháp lý sẽ có mặt trong mảng tỷ lệ kèo bóng đá quả, nhưngPQConninFooption
Đối với bất kỳ tùy chọn nào không có trong chuỗi tỷ lệ kèo bóng đá sẽ cóVal
Đặt thànhnull
; Giá trị mặc định không được chèn.
nếuerrmsg
không phảinull
, sau đó*errmsg
được đặt thànhnull
Khi thành công, khác vớimalloc
'D chuỗi lỗi giải thích vấn đề. (Nó cũng có thể cho*errmsg
được đặt thànhnull
và chức năng trả vềnull
; Điều này chỉ ra một điều kiện ngoài bộ nhớ.)
Sau khi xử lý mảng tùy chọn, hãy giải phóng nó bằng cách chuyển nó sangPQConnInfofree
. Nếu điều này không được thực hiện, một số bộ nhớ sẽ bị rò rỉ cho mỗi cuộc gọi đếnPQConnInfoparse
. Ngược lại, nếu xảy ra lỗi vàerrmsg
không phảinull
, Hãy chắc chắn giải phóng chuỗi lỗi bằng cách sử dụngpqfreemem
.
pqfinish
#Đóng tỷ lệ kèo bóng đá với máy chủ. Cũng giải phóng bộ nhớ được sử dụng bởiPGConn
Đối tượng.
void pqfinish (pgconn *Conn);
Lưu ý rằng ngay cả khi cố gắng tỷ lệ kèo bóng đá máy chủ không thành công (như được chỉ ra bởipqstatus
), ứng dụng nên gọipqfinish
Để giải phóng bộ nhớ được sử dụng bởiPGConn
Đối tượng. ThePGConn
Con trỏ không được sử dụng lại saupqfinish
đã được gọi.
pqreset
#Đặt lại kênh truyền thông cho tỷ lệ kèo bóng đá chủ.
void pqreset (pgconn *Conn);
Hàm này sẽ đóng tỷ lệ kèo bóng đá với máy chủ và cố gắng thiết lập tỷ lệ kèo bóng đá mới, sử dụng tất cả các tham số giống nhau được sử dụng trước đây. Điều này có thể hữu ích cho việc khôi phục lỗi nếu mất tỷ lệ kèo bóng đá làm việc.
PQResetStart
pqresetpoll
#Đặt lại kênh giao tiếp cho tỷ lệ kèo bóng đá chủ, theo cách không chặn.
int pqresetstart (pgconn *Conn);
Các chức năng này sẽ đóng tỷ lệ kèo bóng đá với máy chủ và cố gắng thiết lập một tỷ lệ kèo bóng đá mới, sử dụng tất cả các tham số giống nhau được sử dụng trước đây. Điều này có thể hữu ích cho việc phục hồi lỗi nếu mất tỷ lệ kèo bóng đá làm việc.pqreset
(ở trên) trong đó chúng hành động theo cách không chặn. tỷ lệ kèo bóng đá chức năng này bị hạn chế giống nhưPQConnectStartParams
, PQConnectStart
vàPQConnectPoll
.
Để bắt đầu đặt lại tỷ lệ kèo bóng đá, hãy gọipqresetstart
. Nếu nó trả về 0, thiết lập lại đã thất bại.pqresetpoll
Theo cách tương tự như bạn sẽ tạo tỷ lệ kèo bóng đá bằng cách sử dụngPQConnectPoll
.
PQPingParams
#PQPingParams
Báo cáo trạng thái của máy chủ. Nó chấp nhận các tham số tỷ lệ kèo bóng đá giống hệt với các tham số củaPQConnectDBParams
, được mô tả ở trên. Không cần thiết phải cung cấp tỷ lệ kèo bóng đá giá trị tên người dùng, mật khẩu hoặc cơ sở dữ liệu chính xác để có được trạng thái máy chủ;
PGPing PQPingParams (const char * const * từ khóa,
Hàm trả về một trong tỷ lệ kèo bóng đá giá trị sau:
PQPing_OK
#Máy chủ đang chạy và dường như đang chấp nhận tỷ lệ kèo bóng đá.
PQPing_Rject
#Máy chủ đang chạy nhưng ở trạng thái không liên kết tỷ lệ kèo bóng đá (khởi động, tắt máy hoặc phục hồi sự cố).
pqping_no_response
#Máy chủ không thể liên hệ. Điều này có thể chỉ ra rằng máy chủ không chạy hoặc có điều gì đó sai với các tham số tỷ lệ kèo bóng đá đã cho (ví dụ: số cổng sai) hoặc có vấn đề tỷ lệ kèo bóng đá mạng (ví dụ: tường lửa chặn yêu cầu tỷ lệ kèo bóng đá).
PQPing_NO_ATTEMEM
#Không có nỗ lực nào được thực hiện để liên hệ với máy chủ, vì tỷ lệ kèo bóng đá tham số được cung cấp rõ ràng là không chính xác hoặc có một số vấn đề phía máy khách (ví dụ: ngoài bộ nhớ).
PQPing
#PQPing
Báo cáo trạng thái của máy chủ. Nó chấp nhận các tham số tỷ lệ kèo bóng đá giống hệt với các tham số củaPQConnectDB
, được mô tả ở trên. Không cần thiết phải cung cấp tỷ lệ kèo bóng đá giá trị tên người dùng, mật khẩu hoặc cơ sở dữ liệu chính xác để có được trạng thái máy chủ;
pgping pqping (const char *conninfo);
tỷ lệ kèo bóng đá giá trị trả về giống như đối vớiPQPingParams
.
#Cho phép ghi đè ứng dụnglibpq'SXử lý mặc định tỷ lệ kèo bóng đá tệp khóa Chứng chỉ Máy khách được mã hóaSử dụngSSLPasswordhoặc nhắc nhở tương tác.
VOID PQSETSSLKEYM
Ứng dụng chuyển một con trỏ đến chức năng gọi lại với chữ ký:
int callback_fn (char *buf, int size, pgconn *Conn);
whatlibpqSau đó sẽ gọithay vìmặc định của nóHandler. Cuộc gọi lại sẽ xác định mật khẩu cho khóa và sao chép nó vào bộ đệm tỷ lệ kèo bóng đá quả
BUF
của kích thướcsize
. Chuỗi trongBUF
phải tỷ lệ kèo bóng đá thúc không. Cuộc gọi lại phải trả về độ dài của mật khẩu được lưu trữ trongBUF
Loại trừ Terminator null. Khi thất bại, cuộc gọi lại sẽ được đặtBUF [0] = '\ 0'
và trả về 0. Xeminlibpqmã nguồn cho một ví dụ.
Nếu người dùng đã chỉ định vị trí khóa rõ ràng, đường dẫn của nó sẽ ởConn- SSLKey
Khi gọi lại. Điều này sẽ trống nếu đường dẫn khóa mặc định đang được sử dụng.OpenSSLGọi lại mật khẩu hoặc xác định xử lý riêng của họ.
Cuộc gọi lại ứng dụng có thể chọn giao tỷ lệ kèo bóng đá trường hợp không được xử lý chohoặc gọi nó trước và thử một cái gì đó khác nếu nó trả về 0 hoặc hoàn toàn ghi đè nó.
Cuộc gọi lạikhông đượcthoát khỏi điều khiển dòng chảy bình thường với ngoại lệ,longjmp (...)
, v.v. Nó phải trả về bình thường.
#Trả về Hook Mật khẩu khóa Chứng chỉ tỷ lệ kèo bóng đá khách hiện tại hoặc
null
Nếu không có được đặt.
52017_52085
vàilibpqHàm phân chia chuỗi do người dùng chỉ định để có được các tham số tỷ lệ kèo bóng đá. Có hai định dạng được chấp nhận cho các chuỗi này: từ khóa/chuỗi giá trị đơn giản và URI.RFC 3986, ngoại trừ các chuỗi tỷ lệ kèo bóng đá đa máy chủ được cho phép như được mô tả thêm bên dưới.
Trong định dạng từ khóa/giá trị, mỗi cài đặt tham số ở dạngTừ khóa
=
Value
, với không gian giữa tỷ lệ kèo bóng đá cài đặt. Không gian xung quanh dấu hiệu bằng nhau của cài đặt là tùy chọn.Từ khóa = 'A Value'
. tỷ lệ kèo bóng đá trích dẫn đơn và dấu gạch chéo ngược trong một giá trị phải được thoát ra bằng dấu gạch chéo ngược, tức là,\ '
và\
.
Ví dụ:
host = port localhost = 5432 dbname = myDB Connect_timeout = 10
tỷ lệ kèo bóng đá từ khóa tham số được công nhận được liệt kê trongPhần 32.1.2.
biểu mẫu chung cho tỷ lệ kèo bóng đáuriIS:
PostgreSQL: // [userspec
@] [hostspec
] [/dbname
] [?paramspec
]WHEREuserspec
IS:user
[:Mật khẩu
]vàhostspec
IS:[host
] [:Cổng
] [,...]vàparamspec
IS:tên
=giá trị
[& ...]
TheURINgười chỉ định sơ đồ có thể làPostgresql: //
hoặcPostgres: //
. Mỗi phần còn lạiuritỷ lệ kèo bóng đá bộ phận là tùy chọn. tỷ lệ kèo bóng đá ví dụ sau minh họa hợp lệURICú pháp:
Postgresql: //
tỷ lệ kèo bóng đá giá trị thường xuất hiện trong phần phân cấp củaURIThay vào đó có thể được đưa ra dưới dạng tham số được đặt tên. Ví dụ:
Postgresql: /// mydb? Host = localhost & port = 5433
Tất cả tỷ lệ kèo bóng đá tham số được đặt tên phải khớp với tỷ lệ kèo bóng đá từ khóa được liệt kê trongPhần 32.1.2, ngoại trừ khả năng tương thích với tỷ lệ kèo bóng đá JDBCURIs, tỷ lệ kèo bóng đá trường hợp củassl = true
được dịch thànhSSLMode = Yêu cầu
.
tỷ lệ kèo bóng đáuriCần được mã hóa bằngphần trăm mã hóaNếu nó bao gồm tỷ lệ kèo bóng đá ký hiệu có ý nghĩa đặc biệt trong bất kỳ phần nào của nó. Đây là một ví dụ trong đó dấu hiệu bằng nhau (=
) được thay thế bằng%3D
và ký tự không gian với%20
:
57514_57593
Phần tỷ lệ kèo bóng đá chủ có thể là tên tỷ lệ kèo bóng đá chủ hoặc địa chỉ IP. Để chỉ định địa chỉ IPv6, hãy đặt nó trong dấu ngoặc vuông:
Postgresql: // [2001: DB8 :: 1234]/cơ sở dữ liệu
Phần tỷ lệ kèo bóng đá chủ được giải thích như được mô tả cho tham sốhost. Cụ thể, tỷ lệ kèo bóng đá ổ cắm miền Unix được chọn nếu phần máy chủ trống hoặc trông giống như tên đường dẫn tuyệt đối, nếu không, tỷ lệ kèo bóng đá TCP/IP được bắt đầu.
Postgresql: /// dbname? Host =/var/lib/postgresql
Có thể chỉ định nhiều thành phần tỷ lệ kèo bóng đá chủ, mỗi thành phần có thành phần cổng tùy chọn, trong một URI. Một URI của biểu mẫuPostgreSQL: // host1: port1, host2: port2, host3: port3/
tương đương với chuỗi tỷ lệ kèo bóng đá của biểu mẫuhost = host1, host2, host3 port = port1, port2, port3
. Như được mô tả thêm dưới đây, mỗi máy chủ sẽ lần lượt được thử cho đến khi tỷ lệ kèo bóng đá được thiết lập thành công.
Có thể chỉ định nhiều máy chủ để tỷ lệ kèo bóng đá, để chúng được thử theo thứ tự đã cho. Trong định dạng từ khóa/giá trị,host
, hostaddr
vàCổng
Tùy chọn chấp nhận danh sách tỷ lệ kèo bóng đá giá trị được phân tách bằng dấu phẩy. Cùng một số phần tử phải được đưa ra trong mỗi tùy chọn được chỉ định, ví dụ: đầu tiênhostaddr
tương ứng với tên tỷ lệ kèo bóng đá chủ thứ nhất, thứ haihostaddr
tương ứng với tên tỷ lệ kèo bóng đá chủ thứ hai, v.v. Như một ngoại lệ, nếu chỉ có mộtCổng
được chỉ định, nó áp dụng cho tất cả tỷ lệ kèo bóng đá máy chủ.
Trong định dạng URI tỷ lệ kèo bóng đá, bạn có thể liệt kê nhiềuhost: cổng
cặp được phân tách bằng dấu phẩy tronghost
Thành phần của URI.
Trong cả hai định dạng, một tên tỷ lệ kèo bóng đá chủ duy nhất có thể dịch sang nhiều địa chỉ mạng. Một ví dụ phổ biến về điều này là một tỷ lệ kèo bóng đá chủ có cả địa chỉ IPv4 và IPv6.
Khi nhiều máy chủ được chỉ định hoặc khi một tên máy chủ được dịch thành nhiều địa chỉ, tất cả các máy chủ và địa chỉ sẽ được thử theo thứ tự, cho đến khi một thành công. Nếu không có máy chủ nào có thể đạt được, tỷ lệ kèo bóng đá không thành công.
Nếu một tệp mật khẩu được sử dụng, bạn có thể có mật khẩu khác nhau cho các máy chủ khác nhau. Tất cả các tùy chọn tỷ lệ kèo bóng đá khác đều giống nhau cho mọi máy chủ trong danh sách;
tỷ lệ kèo bóng đá từ khóa tham số hiện được công nhận là:
host
#Tên của máy chủ để tỷ lệ kèo bóng đá với.Nếu tên tỷ lệ kèo bóng đá chủ trông giống như tên đường dẫn tuyệt đối, nó chỉ định giao tiếp miền đơn hơn là giao tiếp TCP/IP; Giá trị là tên của thư mục trong đó tệp ổ cắm được lưu trữ.@
, nó được lấy làm ổ cắm miền đơn vị trong không gian tên trừu tượng (hiện được hỗ trợ trên Linux và Windows). Hành vi mặc định khihost
Không được chỉ định hoặc trống, là tỷ lệ kèo bóng đá với ổ cắm miền đơn vịin/TMP
(hoặc bất kỳ thư mục ổ cắm nào được chỉ định khiPostgreSQLđã được xây dựng). Trên Windows, mặc định là tỷ lệ kèo bóng đá vớiLocalhost
.
Một danh sách tỷ lệ kèo bóng đá tên máy chủ được phân tách bằng dấu phẩy cũng được chấp nhận, trong trường hợp mỗi tên máy chủ trong danh sách được thử theo thứ tự; Một mục trống trong danh sách chọn hành vi mặc định như được giải thích ở trên.Phần 32.1.1.3Để biết chi tiết.
hostaddr
#Địa chỉ IP số của máy chủ để tỷ lệ kèo bóng đá với. Điều này phải ở định dạng địa chỉ IPv4 tiêu chuẩn, ví dụ:172.28.40.9
. Nếu máy của bạn hỗ trợ IPv6, bạn cũng có thể sử dụng tỷ lệ kèo bóng đá địa chỉ đó.host
sẽ được tra cứu để tìm địa chỉ IP tương ứng - hoặc, nếuhost
Chỉ định địa chỉ IP, giá trị đó sẽ được sử dụng trực tiếp.
Sử dụnghostaddr
Cho phép ứng dụng tránh tra cứu tên máy chủ, điều này có thể quan trọng trong tỷ lệ kèo bóng đá ứng dụng với tỷ lệ kèo bóng đá ràng buộc về thời gian. Tuy nhiên, tên máy chủ được yêu cầu cho tỷ lệ kèo bóng đá phương thức xác thực GSSAPI hoặc SSPI, cũng như choxác minh-đầy đủ
Xác minh chứng chỉ SSL. tỷ lệ kèo bóng đá quy tắc sau được sử dụng:
nếuhost
được chỉ định mà không cóhostaddr
, Tra cứu tên tỷ lệ kèo bóng đá chủ xảy ra. (Khi sử dụngPQConnectPoll
, Tra cứu xảy ra khiPQConnectPoll
Đầu tiên xem xét tên tỷ lệ kèo bóng đá chủ này và nó có thể gây raPQConnectPoll
Để chặn trong một khoảng thời gian đáng kể.)
nếuhostaddr
được chỉ định mà không cóhost
, giá trị chohostaddr
Cung cấp địa chỉ mạng máy chủ. Nỗ lực tỷ lệ kèo bóng đá sẽ thất bại nếu phương thức xác thực yêu cầu tên máy chủ.
Nếu cả haitỷ lệ kèo bóng đá chủ
vàhostaddr
được chỉ định, giá trị chohostaddr
Cung cấp địa chỉ mạng tỷ lệ kèo bóng đá chủ. Giá trị chohost
bị bỏ qua trừ khi phương thức xác thực yêu cầu, trong trường hợp đó nó sẽ được sử dụng làm tên tỷ lệ kèo bóng đá chủ.
Lưu ý rằng xác thực có khả năng thất bại nếuhost
không phải là tên của tỷ lệ kèo bóng đá chủ tại địa chỉ mạnghostaddr
. Ngoài ra, khi cả haihost
vàhostaddr
được chỉ định,host
được sử dụng để xác định tỷ lệ kèo bóng đá trong tệp mật khẩu (xemPhần 32.16).
Danh sách được phân tách bằng dấu phẩyhostaddr
Giá trị cũng được chấp nhận, trong trường hợp đó, mỗi tỷ lệ kèo bóng đá chủ trong danh sách được thử theo thứ tự. Một mục trống trong danh sách khiến tên tỷ lệ kèo bóng đá chủ tương ứng được sử dụng hoặc tên tỷ lệ kèo bóng đá chủ mặc định nếu đó cũng trống.Phần 32.1.1.3Để biết chi tiết.
Không có tên tỷ lệ kèo bóng đá chủ hoặc địa chỉ tỷ lệ kèo bóng đá chủ,libpqSẽ tỷ lệ kèo bóng đá bằng cách sử dụng ổ cắm tên miền đơn vị cục bộ; hoặc trên Windows, nó sẽ cố gắng tỷ lệ kèo bóng đá vớiLocalhost
.
Cổng
#Số cổng để tỷ lệ kèo bóng đá với máy chủ máy chủ hoặc tiện ích mở rộng tên tệp cho các tỷ lệ kèo bóng đá miền đơn vị.Nếu nhiều tỷ lệ kèo bóng đá chủ được đưa ra tronghost
hoặchostaddr
Tham số, tham số này có thể chỉ định danh sách tỷ lệ kèo bóng đá cổng được phân tách bằng dấu phẩy có cùng độ dài với danh sách máy chủ hoặc nó có thể chỉ định một số cổng duy nhất được sử dụng cho tất cả tỷ lệ kèo bóng đá máy chủ. Một chuỗi trống hoặc một mục trống trong danh sách được phân tách bằng dấu phẩy, chỉ định số cổng mặc định được thiết lập khiPOSTGRESQLđược xây dựng.
dbname
#Tên cơ sở dữ liệu. Mặc định giống như tên người dùng.Phần 32.1.1Để biết thêm chi tiết về những điều đó.
user
#PostgreSQLTên người dùng để tỷ lệ kèo bóng đá như. Mặc định giống như tên hệ điều hành của người dùng đang chạy ứng dụng.
Mật khẩu
#Mật khẩu sẽ được sử dụng nếu tỷ lệ kèo bóng đá chủ yêu cầu xác thực mật khẩu.
Passfile
#Chỉ định tên của tệp được sử dụng để lưu trữ mật khẩu (xemPhần 32.16). Mặc định là~/.pgass
hoặc%appdata%\ postgresql \ pgpass.conf
Trên Microsoft Windows. (Không có lỗi nào được báo cáo nếu tệp này không tồn tại.)
Yêu cầu_auth
#Chỉ định phương thức xác thực mà máy khách yêu cầu từ máy chủ. Nếu máy chủ không sử dụng phương thức bắt buộc để xác thực máy khách hoặc nếu máy chủ bắt tay xác thực không hoàn thành hoàn toàn, tỷ lệ kèo bóng đá sẽ không thành công.
Phương pháp có thể bị phủ nhận với việc bổ sung!
tiền tố, trong trường hợp đó tỷ lệ kèo bóng đá chủ phảikhôngHãy thử phương pháp được liệt kê; Bất kỳ phương thức nào khác đều được chấp nhận và tỷ lệ kèo bóng đá chủ miễn phí để không xác thực tỷ lệ kèo bóng đá khách.bất kỳcủa các phương thức phủ định được liệt kê. Các hình thức bị phủ định và không bị phân loại có thể không được tỷ lệ kèo bóng đá hợp trong cùng một cài đặt.
Là trường hợp đặc biệt cuối cùng,Không
Phương thức yêu cầu tỷ lệ kèo bóng đá chủ không sử dụng thử thách xác thực. (Nó cũng có thể được phủ định, để yêu cầu một số hình thức xác thực.)
tỷ lệ kèo bóng đá phương pháp sau đây có thể được chỉ định:
Mật khẩu
tỷ lệ kèo bóng đá chủ phải yêu cầu xác thực mật khẩu Plaintext.
MD5
tỷ lệ kèo bóng đá chủ phải yêu cầu xác thực mật khẩu băm MD5.
GSS
tỷ lệ kèo bóng đá chủ phải yêu cầu bắt tay Kerberos quaGSSAPIhoặc thiết lập AGSS-Encrypted Kênh (xem thêmGSSENCMode).
SSPI
tỷ lệ kèo bóng đá chủ phải yêu cầu WindowsSSPIXác thực.
Scram-Sha-256
tỷ lệ kèo bóng đá chủ phải hoàn thành thành công trao đổi xác thực Scram-Sha-256 với tỷ lệ kèo bóng đá khách.
Không
tỷ lệ kèo bóng đá chủ không được nhắc tỷ lệ kèo bóng đá khách trao đổi xác thực. .
Channel_binding
#Tùy chọn này kiểm soát việc sử dụng liên tỷ lệ kèo bóng đá kênh của khách hàng. Một cài đặt củaYêu cầu
Có nghĩa là tỷ lệ kèo bóng đá phải sử dụng liên kết kênh,ưa thích
có nghĩa là máy khách sẽ chọn liên tỷ lệ kèo bóng đá kênh nếu có vàvô hiệu hóa
Ngăn chặn việc sử dụng liên tỷ lệ kèo bóng đá kênh. Mặc định làưa thích
nếuPostgreSQLđược biên dịch với hỗ trợ SSL; nếu không thì mặc định làvô hiệu hóa
.
Liên kết kênh là một phương thức để máy chủ tự xác thực với máy khách. Nó chỉ được hỗ trợ qua các tỷ lệ kèo bóng đá SSL vớiPOSTGRESQL11 hoặc sau đó bằng cách sử dụngScram
Phương pháp xác thực.
Connect_Timeout
#Thời gian tối đa để chờ đợi trong khi tỷ lệ kèo bóng đá, tính bằng giây (viết dưới dạng số nguyên thập phân, ví dụ:10
). Số không, âm, hoặc không được chỉ định có nghĩa là chờ vô thời hạn.Connect_Timeout
là 5, mỗi máy chủ sẽ hết thời gian nếu không có tỷ lệ kèo bóng đá nào được thực hiện trong vòng 5 giây, do đó, tổng thời gian chờ đợi một tỷ lệ kèo bóng đá có thể lên đến 10 giây.
client_encoding
#Điều này đặtclient_encoding
Tham số cấu hình cho tỷ lệ kèo bóng đá này. Ngoài các giá trị được chấp nhận bởi tùy chọn máy chủ tương ứng, bạn có thể sử dụngAuto
Để xác định đúng mã hóa từ vị trí hiện tại trong tỷ lệ kèo bóng đá khách (lc_ctype
Biến môi trường trên tỷ lệ kèo bóng đá hệ thống UNIX).
Tùy chọn
#Chỉ định các tùy chọn dòng lệnh để gửi đến máy chủ khi bắt đầu tỷ lệ kèo bóng đá. Ví dụ: đặt cái này thành-c geqo = off
hoặc--Geqo = off
Đặt giá trị phiên củageqo
tham số đếnTẮT
. Không gian trong chuỗi này được coi là tỷ lệ kèo bóng đá đối số dòng lệnh riêng biệt, trừ khi thoát ra bằng dấu gạch chéo ngược (\
); viết\
Để thể hiện dấu gạch chéo ngược theo nghĩa đen. Để thảo luận chi tiết về tỷ lệ kèo bóng đá tùy chọn có sẵn, hãy tham khảo ý kiếnChương 19.
application_name
#Chỉ định giá trị choapplication_nameTham số cấu hình.
fallback_application_name
#Chỉ định giá trị dự phòng choapplication_nameTham số cấu hình. Giá trị này sẽ được sử dụng nếu không có giá trị nào được đưa ra choapplication_name
thông qua tham số tỷ lệ kèo bóng đá hoặcPGAPPNAME
Biến môi trường. Chỉ định tên dự phòng rất hữu ích trong tỷ lệ kèo bóng đá chương trình tiện ích chung muốn đặt tên ứng dụng mặc định nhưng cho phép nó bị người dùng ghi đè.
Keepalive
#Kiểm soát xem tỷ lệ kèo bóng đá thiết bị giữ TCP phía máy khách có được sử dụng hay không. Giá trị mặc định là 1, có nghĩa là trên, nhưng bạn có thể thay đổi điều này thành 0, có nghĩa là tắt, nếu không muốn.
Keepalives_idle
#Kiểm soát số giây không hoạt động sau đó TCP sẽ gửi tin nhắn giữ cho tỷ lệ kèo bóng đá chủ. Giá trị bằng 0 sử dụng mặc định hệ thống.TCP_Keepidle
hoặc tùy chọn ổ cắm tương đương có sẵn và trên Windows; Trên tỷ lệ kèo bóng đá hệ thống khác, nó không có tác dụng.
Keepalive_interval
#Kiểm soát số giây sau đó một thông điệp giữ TCP không được tỷ lệ kèo bóng đá chủ thừa nhận nên được truyền lại. Giá trị bằng 0 sử dụng mặc định hệ thống.TCP_KeepIntVL
hoặc tùy chọn ổ cắm tương đương có sẵn và trên Windows; Trên tỷ lệ kèo bóng đá hệ thống khác, nó không có tác dụng.
Keepalive_Count
#Kiểm soát số lượng Keepalives TCP có thể bị mất trước khi tỷ lệ kèo bóng đá của khách hàng với máy chủ được coi là đã chết. Giá trị bằng 0 sử dụng mặc định hệ thống.tcp_keepcnt
hoặc tùy chọn ổ cắm tương đương có sẵn; Trên tỷ lệ kèo bóng đá hệ thống khác, nó không có tác dụng.
tcp_user_timeout
#Kiểm soát số lượng mili giây mà dữ liệu truyền có thể vẫn chưa được kiểm chứng trước khi tỷ lệ kèo bóng đá bị đóng lại. Giá trị bằng 0 sử dụng mặc định hệ thống.tcp_user_timeout
có sẵn; Trên tỷ lệ kèo bóng đá hệ thống khác, nó không có tác dụng.
sao chép
#Tùy chọn này xác định xem tỷ lệ kèo bóng đá có nên sử dụng giao thức sao chép thay vì giao thức thông thường hay không. Đây là những gì tỷ lệ kèo bóng đá sao chép PostgreSQL cũng như các công cụ nhưpg_basebackupSử dụng nội bộ, nhưng nó cũng có thể được sử dụng bởi tỷ lệ kèo bóng đá ứng dụng của bên thứ ba. Để biết mô tả về giao thức sao chép, tham khảo ý kiếnPhần 53.4.
tỷ lệ kèo bóng đá giá trị sau, không nhạy cảm với trường hợp, được hỗ trợ:
true
, trên
, Có
, 1
tỷ lệ kèo bóng đá chuyển sang chế độ sao chép vật lý.
Cơ sở dữ liệu
tỷ lệ kèo bóng đá chuyển sang chế độ sao chép logic, tỷ lệ kèo bóng đá với cơ sở dữ liệu được chỉ định trongdbname
tham số.
Sai
, TẮT
, Không
, 0
tỷ lệ kèo bóng đá là thông thường, là hành vi mặc định.
Trong chế độ sao chép vật lý hoặc logic, chỉ có thể sử dụng giao thức truy vấn đơn giản.
GSSENCMode
#Tùy chọn này xác định xem có ưu tiên nào an toànGSStỷ lệ kèo bóng đá TCP/IP sẽ được đàm phán với máy chủ. Có ba chế độ:
vô hiệu hóa
Chỉ thử khôngGSSAPI-Chencepted Connection
ưa thích
(mặc định)Nếu cóGSSAPIThông tin hiện tại (tức là, trong bộ đệm thông tin đăng nhập), trước tiên hãy thử AGSSAPItỷ lệ kèo bóng đá -Crypted; Nếu thất bại hoặc không có thông tin đăng nhập, hãy thử khôngGSSAPItỷ lệ kèo bóng đá -Crypted. Đây là mặc định khiPostgreSQLđã được biên dịch vớiGSSAPIHỗ trợ.
Yêu cầu
Chỉ thử AGSSAPI-Crypted tỷ lệ kèo bóng đá
GSSENCMode
bị bỏ qua cho giao tiếp ổ cắm miền UNIX. Nếu nhưPostgreSQLđược biên dịch mà không cần hỗ trợ GSSAPI, sử dụngYêu cầu
Tùy chọn sẽ gây ra lỗi, trong khiưa thích
sẽ được chấp nhận nhưnglibpqsẽ không thực sự thử AGSSAPItỷ lệ kèo bóng đá -Crypted.
SSLMode
#Tùy chọn này xác định xem có ưu tiên nào an toànSSLtỷ lệ kèo bóng đá TCP/IP sẽ được đàm phán với máy chủ. Có sáu chế độ:
vô hiệu hóa
Chỉ thử khôngSSLtỷ lệ kèo bóng đá
Cho phép
Đầu tiên hãy thử khôngSSLtỷ lệ kèo bóng đá; Nếu thất bại, hãy thửSSLtỷ lệ kèo bóng đá
ưa thích
(mặc định)Đầu tiên hãy thửSSLtỷ lệ kèo bóng đá; Nếu thất bại, hãy thử khôngSSLtỷ lệ kèo bóng đá
Yêu cầu
chỉ thửSSLtỷ lệ kèo bóng đá. Nếu có tệp Ca gốc, hãy xác minh chứng chỉ theo cách tương tự nhưXác minh-CA
đã được chỉ định
Xác minh-CA
Chỉ thửSSLtỷ lệ kèo bóng đá và xác minh rằng chứng chỉ máy chủ được cấp bởi cơ quan chứng chỉ đáng tin cậy (CA)
xác minh-đầy đủ
Chỉ thửSSLtỷ lệ kèo bóng đá, xác minh rằng chứng chỉ máy chủ được cấp bởi một người đáng tin cậyCAVà tên tỷ lệ kèo bóng đá chủ tỷ lệ kèo bóng đá chủ được yêu cầu phù hợp với chứng chỉ
xemPhần 32.19Để biết mô tả chi tiết về cách tỷ lệ kèo bóng đá tùy chọn này hoạt động.
SSLMode
bị bỏ qua cho giao tiếp ổ cắm miền UNIX. Nếu nhưPostgreSQLđược biên dịch mà không cần hỗ trợ SSL, sử dụng tỷ lệ kèo bóng đá tùy chọnYêu cầu
, Xác minh-CA
hoặcxác minh-đầy đủ
sẽ gây ra lỗi, trong khi tỷ lệ kèo bóng đá tùy chọnCho phép
vàưa thích
sẽ được chấp nhận nhưnglibpqSẽ không thực sự thửSSLtỷ lệ kèo bóng đá.
Lưu ý rằng nếuGSSAPIMã hóa là có thể, sẽ được sử dụng theo sở thíchSSLMã hóa, bất kể giá trị củaSSLMode
. Để buộc sử dụngSSLMã hóa trong một môi trường đã hoạt độngGSSAPICơ sở hạ tầng (như tỷ lệ kèo bóng đá chủ Kerberos), cũng được đặtGSSENCMode
đếnvô hiệu hóa
.
Yêu cầu
#Tùy chọn này không được ủng hộ theo hướngSSLMode
Cài đặt.
Nếu được đặt thành 1, mộtSSLtỷ lệ kèo bóng đá với máy chủ là bắt buộc (điều này tương đương vớiSSLMode
Yêu cầu
).libpqSau đó sẽ từ chối tỷ lệ kèo bóng đá nếu máy chủ không chấp nhậnSSLtỷ lệ kèo bóng đá. Nếu đặt thành 0 (mặc định),libpqSẽ thương lượng loại tỷ lệ kèo bóng đá với máy chủ (tương đương vớiSSLMode
ưa thích
). Tùy chọn này chỉ khả dụng nếuPOSTGRESQLđược biên dịch với hỗ trợ SSL.
SSLNEGOTIATION
#Tùy chọn này kiểm soát cách mã hóa SSL được đàm phán với tỷ lệ kèo bóng đá chủ, nếu SSL được sử dụng. Trong mặc địnhPostgres
chế độ, tỷ lệ kèo bóng đá khách trước tiên hỏi tỷ lệ kèo bóng đá chủ nếu SSL được hỗ trợ. TRONGtrực tiếp
chế độ, máy khách bắt đầu bắt tay SSL tiêu chuẩn trực tiếp sau khi thiết lập tỷ lệ kèo bóng đá TCP/IP. Truyền thốngPOSTGRESQLĐàm phán giao thức là linh hoạt nhất với tỷ lệ kèo bóng đá cấu hình máy chủ khác nhau. Nếu máy chủ được biết là hỗ trợ trực tiếpSSLtỷ lệ kèo bóng đá sau đó yêu cầu một ít hơn một vòng giảm độ trễ tỷ lệ kèo bóng đá và cũng cho phép sử dụng các công cụ mạng SSL bất khả tri giao thức. Tùy chọn SSL trực tiếp được giới thiệu trongPOSTGRESQLPhiên bản 17.
Postgres
thực hiệnPostgreSQLĐàm phán giao thức. Đây là mặc định nếu tùy chọn không được cung cấp.
trực tiếp
Bắt đầu bắt tay SSL trực tiếp sau khi thiết lập tỷ lệ kèo bóng đá TCP/IP. Điều này chỉ được phép với sslMode = yêu cầu hoặc cao hơn, bởi vì các cài đặt yếu hơn có thể dẫn đến sự dự phòng không lường trước được xác thực rõ ràng khi máy chủ không hỗ trợ bắt tay SSL trực tiếp.
SSLCompression
#Nếu được đặt thành 1, dữ liệu được gửi qua các tỷ lệ kèo bóng đá SSL sẽ được nén. Nếu được đặt thành 0, nén sẽ bị tắt.
Nén SSL ngày nay được coi là không an toàn và việc sử dụng nó không còn được khuyến nghị nữa.OpenSSL1.1.0 nén bị vô hiệu hóa theo mặc định và nhiều bản phân phối hệ điều hành đã vô hiệu hóa nó trong tỷ lệ kèo bóng đá phiên bản trước, vì vậy hãy đặt tham số này thành BẬT sẽ không có bất kỳ hiệu ứng nào nếu máy chủ không chấp nhận nén.POSTGRESQL14 Hoàn toàn nén bị vô hiệu hóa trong phần phụ trợ.
Nếu bảo mật không phải là mối quan tâm chính, nén có thể cải thiện thông lượng nếu mạng là nút cổ chai. Vô hiệu hóa nén có thể cải thiện thời gian phản hồi và thông lượng nếu hiệu suất CPU là yếu tố giới hạn.
SSLCERT
#Tham số này chỉ định tên tệp của chứng chỉ SSL của tỷ lệ kèo bóng đá khách, thay thế mặc định~/.Postgresql/postgresql.crt
. Tham số này bị bỏ qua nếu tỷ lệ kèo bóng đá SSL không được thực hiện.
SSLKey
#Tham số này chỉ định vị trí cho khóa bí mật được sử dụng cho chứng chỉ tỷ lệ kèo bóng đá khách. Nó có thể chỉ định tên tệp sẽ được sử dụng thay vì mặc định~/.Postgresql/postgresql.key
hoặc nó có thể chỉ định một khóa thu được từ bên ngoàiĐộng cơ”(Động cơ làOpenSSLMô -đun có thể tải). Một đặc điểm kỹ thuật của động cơ bên ngoài nên bao gồm một tên động cơ được phân tách đại tràng và mã định danh khóa dành riêng cho động cơ.
SSLPassword
#Tham số này chỉ định mật khẩu cho khóa bí mật được chỉ định trongsslkey
92821_92961
Chỉ định tham số này với bất kỳ giá trị không trống nào ngăn chặnNhập cụm từ PEM PASS:
nhắc nhở rằngOpenSSLSẽ phát ra theo mặc định khi khóa chứng chỉ tỷ lệ kèo bóng đá khách được mã hóa được cung cấp cholibpq
.
Nếu khóa không được mã hóa tham số này bị bỏ qua. Tham số không có tác dụng đối với tỷ lệ kèo bóng đá khóa được chỉ định bởiOpenSSLĐộng cơ trừ khi động cơ sử dụngOpenSSLCơ chế gọi lại mật khẩu cho lời nhắc.
Không có biến môi trường tương đương với tùy chọn này và không có cơ sở nào để tìm kiếm nó trong.pgass
. Nó có thể được sử dụng trong một định nghĩa tỷ lệ kèo bóng đá tệp dịch vụ.OpenSSLĐộng cơ và công cụ như PKCS#11 hoặc thiết bị giảm tiền điện tử USB.
sslcertMode
#Tùy chọn này xác định liệu chứng chỉ tỷ lệ kèo bóng đá khách có thể được gửi đến tỷ lệ kèo bóng đá chủ hay không và liệu tỷ lệ kèo bóng đá chủ có bắt buộc phải yêu cầu không. Có ba chế độ:
vô hiệu hóa
Chứng chỉ tỷ lệ kèo bóng đá khách không bao giờ được gửi, ngay cả khi có sẵn (vị trí mặc định hoặc được cung cấp quaSSLCERT).
cho phép
(mặc định)có thể được gửi chứng chỉ, nếu tỷ lệ kèo bóng đá chủ yêu cầu một và tỷ lệ kèo bóng đá khách có một để gửi.
Yêu cầu
tỷ lệ kèo bóng đá chủphảiYêu cầu chứng chỉ. tỷ lệ kèo bóng đá sẽ không thành công nếu máy khách không gửi chứng chỉ và máy chủ xác thực thành công máy khách.
SSLCERTMODE = Yêu cầu
Không thêm bất kỳ bảo mật bổ sung nào, vì không có gì đảm bảo rằng máy chủ đang xác thực chính xác chứng chỉ; tỷ lệ kèo bóng đá máy chủ PostgreSQL thường yêu cầu chứng chỉ TLS từ khách hàng cho dù họ có xác nhận chúng hay không.
SSLROOTCERT
#Tham số này chỉ định tên của một tệp chứa Cơ quan chứng chỉ SSL (CA) Chứng chỉ (s). Nếu tệp tồn tại, chứng chỉ của tỷ lệ kèo bóng đá chủ sẽ được xác minh để được ký bởi một trong những cơ quan này.~/.Postgresql/root.crt
.
Giá trị đặc biệtSystem
có thể được chỉ định thay thế, trong trường hợp đó, CA gốc đáng tin cậy từ việc triển khai SSL sẽ được tải. Vị trí chính xác của tỷ lệ kèo bóng đá chứng chỉ gốc này khác nhau theo triển khai SSL và nền tảng.OpenSSLĐặc biệt, tỷ lệ kèo bóng đá vị trí có thể được sửa đổi thêm bởiSSL_CERT_DIR
vàSSL_CERT_FILE
Biến môi trường.
Khi sử dụngsslrootcert = System
, mặc địnhSSLMode
được thay đổi thànhxác minh-đầy đủ
và bất kỳ cài đặt yếu nào hơn sẽ dẫn đến lỗi. Trong hầu hết các trường hợp, mọi người đều tầm thường để có được chứng chỉ được hệ thống tin cậy cho tên máy chủ mà họ kiểm soát, tỷ lệ kèo bóng đá xuấtXác minh-CA
và tất cả tỷ lệ kèo bóng đá chế độ yếu hơn vô dụng.
The MagicSystem
Giá trị sẽ được ưu tiên hơn một tệp chứng chỉ cục bộ có cùng tên. Nếu vì một lý do nào đó, bạn thấy mình trong tình huống này, hãy sử dụng một đường dẫn thay thế nhưsslrootcert =./System
Thay vào đó.
SSLCRL
#Tham số này chỉ định tên tệp của danh sách thu hồi chứng chỉ máy chủ SSL (CRL). tỷ lệ kèo bóng đá chứng chỉ được liệt kê trong tệp này, nếu nó tồn tại, sẽ bị từ chối trong khi cố gắng xác thực chứng chỉ của máy chủ.SSLCRLNorsslcrldirđược đặt, cài đặt này được lấy làm~/.Postgresql/root.crl
.
sslcrldir
#Tham số này chỉ định tên thư mục của danh sách thu hồi chứng chỉ máy chủ SSL (CRL). tỷ lệ kèo bóng đá chứng chỉ được liệt kê trong tỷ lệ kèo bóng đá tệp trong thư mục này, nếu nó tồn tại, sẽ bị từ chối trong khi cố gắng xác thực chứng chỉ của máy chủ.
Thư mục cần được chuẩn bị vớiOpenSSLLệnhOpenSSL Rehash
hoặcC_rehash
. Xem tài liệu của nó để biết chi tiết.
cảSSLCRL
vàsslcrldir
có thể được chỉ định cùng nhau.
99146_99154
#Nếu được đặt thành 1 (mặc định), LibPQ đặt phần mở rộng TLSChỉ định tên tỷ lệ kèo bóng đá chủ”(SNI) trên các tỷ lệ kèo bóng đá hỗ trợ SSL. Bằng cách đặt tham số này thành 0, điều này đã bị tắt.
Chỉ định tên máy chủ có thể được sử dụng bởi các proxy nhận biết SSL để định tuyến các tỷ lệ kèo bóng đá mà không phải giải mã luồng SSL. (Lưu ý rằng trừ khi proxy nhận thức được bắt tay giao thức PostgreSQL, điều này sẽ yêu cầu cài đặtSSLNEGOTIATION
đếntrực tiếp
.) Tuy nhiên,SNILàm cho tên tỷ lệ kèo bóng đá chủ đích xuất hiện trong Cleartext trong lưu lượng mạng, vì vậy nó có thể không mong muốn trong một số trường hợp.
aberpeer
#Tham số này chỉ định tên người dùng hệ điều hành của tỷ lệ kèo bóng đá chủ, ví dụaberpeer = postgres
. Khi tạo tỷ lệ kèo bóng đá ổ cắm miền Unix, nếu tham số này được đặt, máy khách sẽ kiểm tra ở đầu tỷ lệ kèo bóng đá mà quy trình máy chủ đang chạy dưới tên người dùng được chỉ định;/TMP
hoặc một vị trí có thể ghi công khai khác, bất kỳ người dùng nào cũng có thể bắt đầu nghe máy chủ ở đó. Sử dụng tham số này để đảm bảo rằng bạn được tỷ lệ kèo bóng đá với máy chủ do người dùng đáng tin cậy chạy.) Tùy chọn này chỉ được hỗ trợ trên các nền tảng màPeer
Phương pháp xác thực được thực hiện; nhìn thấyPhần 20.9.
ssl_min_protocol_version
#Tham số này chỉ định phiên bản giao thức SSL/TLS tối thiểu để cho phép tỷ lệ kèo bóng đá. Giá trị hợp lệ làTLSV1
, TLSV1.1
, TLSV1.2
vàTLSV1.3
. tỷ lệ kèo bóng đá giao thức được hỗ trợ phụ thuộc vào phiên bảnOpenSSLtỷ lệ kèo bóng đá phiên bản cũ hơn đã sử dụng không hỗ trợ tỷ lệ kèo bóng đá phiên bản giao thức hiện đại nhất. Nếu không được chỉ định, mặc định làTLSV1.2
, thỏa mãn tỷ lệ kèo bóng đá thực tiễn tốt nhất trong ngành khi viết bài này.
ssl_max_protocol_version
#Tham số này chỉ định phiên bản giao thức SSL/TLS tối đa để cho phép tỷ lệ kèo bóng đá. Giá trị hợp lệ làTLSV1
, TLSV1.1
, TLSV1.2
vàTLSV1.3
. tỷ lệ kèo bóng đá giao thức được hỗ trợ phụ thuộc vào phiên bảnOpenSSLCác phiên bản cũ hơn đã sử dụng không hỗ trợ các phiên bản giao thức hiện đại nhất. Nếu không được đặt, tham số này bị bỏ qua và tỷ lệ kèo bóng đá sẽ sử dụng ràng buộc tối đa được xác định bởi phần phụ trợ, nếu được đặt.
krbsrvname
#Tên dịch vụ Kerberos sẽ sử dụng khi xác thực với GSSAPI. Điều này phải khớp với tên dịch vụ được chỉ định trong cấu hình tỷ lệ kèo bóng đá chủ để xác thực Kerberos để thành công.Phần 20.6.) Giá trị mặc định thường làPostgres
, nhưng có thể thay đổi khi xây dựngPostgreSQLthông qua--with-krb-srvnam
Tùy chọnCấu hình. Trong hầu hết tỷ lệ kèo bóng đá môi trường, tham số này không bao giờ cần phải thay đổi.Postgres
).
GSSLIB
#Thư viện GSS để sử dụng để xác thực GSSAPI. Hiện tại điều này bị coi thường ngoại trừ trên tỷ lệ kèo bóng đá bản dựng Windows bao gồm cả hỗ trợ GSSAPI và SSPI.GSSAPI
Để khiến libpq sử dụng thư viện GSSAPI để xác thực thay vì SSPI mặc định.
Gssdelegation
#Chuyển tiếp (Đại biểu) Thông tin GSS cho tỷ lệ kèo bóng đá chủ. Mặc định là0
có nghĩa là thông tin đăng nhập sẽ không được chuyển tiếp đến tỷ lệ kèo bóng đá chủ. Đặt cái này thành1
Để có thông tin đăng nhập khi có thể.
Dịch vụ
#Tên dịch vụ để sử dụng cho tỷ lệ kèo bóng đá tham số bổ sung. Nó chỉ định tên dịch vụ trongpg_service.conf
giữ các tham số tỷ lệ kèo bóng đá bổ sung. Điều này cho phép các ứng dụng chỉ chỉ định một tên dịch vụ để các tham số tỷ lệ kèo bóng đá có thể được duy trì tập trung.Phần 32.17.
target_session_attrs
#Tùy chọn này xác định xem phiên phải có các thuộc tính nhất định được chấp nhận hay không. Nó thường được sử dụng tỷ lệ kèo bóng đá hợp với nhiều tên máy chủ để chọn giải pháp thay thế được chấp nhận đầu tiên trong số một số máy chủ.
any
(mặc định)Bất kỳ tỷ lệ kèo bóng đá thành công nào cũng được chấp nhận
Read-Write
Phiên phải chấp nhận giao dịch đọc-ghi theo mặc định (nghĩa là tỷ lệ kèo bóng đá chủ không được ở chế độ chờ nóng vàdefault_transaction_read_only
tham số phải làTẮT
)
Chỉ đọc
Phiên không được chấp nhận giao dịch đọc-ghi theo mặc định (Converse)
Tiểu học
tỷ lệ kèo bóng đá chủ không được ở chế độ chờ nóng
chờ
tỷ lệ kèo bóng đá chủ phải ở chế độ chờ nóng
Prefer-Standby
Trước tiên hãy thử tìm tỷ lệ kèo bóng đá chủ dự phòng, nhưng nếu không có tỷ lệ kèo bóng đá chủ nào được liệt kê là tỷ lệ kèo bóng đá chủ dự phòng, hãy thử lạiany
Mode
load_balance_hosts
#Kiểm soát thứ tự mà khách hàng cố gắng tỷ lệ kèo bóng đá với các máy chủ và địa chỉ có sẵn. Khi một nỗ lực tỷ lệ kèo bóng đá thành công, không có máy chủ và địa chỉ nào khác sẽ được thử.target_session_attrsVí dụ, chỉ cân bằng tải trên các máy chủ dự phòng. Sau khi tỷ lệ kèo bóng đá thành công, các truy vấn tiếp theo trên tỷ lệ kèo bóng đá được trả về đều sẽ được gửi đến cùng một máy chủ.
vô hiệu hóa
(mặc định)Không cân bằng tải trên tỷ lệ kèo bóng đá chủ được thực hiện. tỷ lệ kèo bóng đá chủ được thử theo thứ tự chúng được cung cấp và địa chỉ được thử theo thứ tự chúng được nhận từ DNS hoặc tệp tỷ lệ kèo bóng đá chủ.
ngẫu nhiên
Máy chủ và địa chỉ được thử theo thứ tự ngẫu nhiên. Giá trị này chủ yếu là hữu ích khi mở nhiều tỷ lệ kèo bóng đá cùng một lúc, có thể từ các máy khác nhau.PostgreSQLtỷ lệ kèo bóng đá chủ.
Trong khi cân bằng tải ngẫu nhiên, do bản chất ngẫu nhiên của nó, hầu như sẽ không bao giờ dẫn đến phân phối hoàn toàn đồng đều, nó thống kê khá gần. Một khía cạnh quan trọng ở đây là thuật toán này sử dụng hai cấp độ lựa chọn ngẫu nhiên: đầu tiên tỷ lệ kèo bóng đá máy chủ sẽ được giải quyết theo thứ tự ngẫu nhiên.
Khi sử dụng giá trị này, bạn nên định cấu hình giá trị hợp lý choConnect_Timeout. Bởi vì sau đó, nếu một trong tỷ lệ kèo bóng đá nút được sử dụng để cân bằng tải không phản hồi, một nút mới sẽ được thử.
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.