Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12/11/10/9.6/9.5/9.4/9.3/9.2/9.1/9.0/8.4/8.3/8.2/7.3/7.2
Tài soi kèo bóng đá truoctran này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong soi kèo bóng đá truoctran phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

34.1.Các chức năng điều khiển soi kèo bóng đá truoctran cơ sở dữ liệu

Các chức năng sau liên quan đến việc tạo soi kèo bóng đá truoctran với APostgreSQLMáy chủ phụ trợ. Một chương trình ứng dụng có thể có một số soi kèo bóng đá truoctran phụ trợ mở cùng một lúc.PGConnĐối tượng, được lấy từ hàmPQConnectDB,PQConnectDBParamshoặcPQSetDbLogin. Lưu ý rằng soi kèo bóng đá truoctran 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. ThepqstatusHàm nên được gọi để kiểm tra giá trị trả về cho soi kèo bóng đá truoctran thành công trước khi các truy vấn được gửi qua đối tượng soi kèo bóng đá truoctran.

cảnh báo

Nếu người dùng không tin cậy có quyền truy cập vào cơ sở dữ soi kèo bóng đá truoctran 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ỏ soi kèo bóng đá truoctran 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 (Conn, "Chọn pg_catalog.set_config ('search_path', '', false)")Sau khi soi kèo bóng đá truoctran. 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 soi kèo bóng đá truoctran lệnh SQL tùy ý.

cảnh báo

Trên Unix, việc đưa ra một quy trình với các soi kèo bóng đá truoctran 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àmEXECTừ quy trình con để tải một thực thi mới là an toàn.

PQConnectDBParams

Tạo soi kèo bóng đá truoctran mới với máy chủ cơ sở dữ liệu.


        

Hàm này mở soi kèo bóng đá truoctran cơ sở dữ liệu mới bằng cách sử dụng các tham số được lấy từ hainull-soi kèo bóng đá truoctran thúc mảng. Đầu tiên,Từ khóa, được định nghĩa là một mảng soi kèo bóng đá truoctran 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ưPQSetDbLoginbê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 soi kèo bóng đá truoctran chất tương tự không chặn của nóPQConnectStartParamsPQConnectPoll) được ưu tiên cho lập trình ứng dụng mới.

soi kèo bóng đá truoctran từ khóa tham số hiện được công nhận được liệt kê trongPhần 34.1.2.

Mảng được truyền có thể trống để sử dụng tất cả soi kèo bóng đá truoctran 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.nullNhập vàoTừ khóaMảng. Ngoài ra, nếuGiá trịmục liên quan đến khôngnull Từ khóamục lànullhoặc một chuỗi trống, mục nhập đó bị bỏ qua và xử lý tiếp tục với cặp mục mảng tiếp theo.

khiexpand_dbnamelà khác không, giá trị cho đầu tiêndbnameTừ khóa được kiểm tra để xem đó có phải làchuỗi soi kèo bóng đá truoctran. Nếu vậy, nó làMở rộngxôngvào các tham số soi kèo bóng đá truoctran riêng lẻ được trích xuất từ ​​chuỗi. Giá trị được coi là chuỗi soi kèo bóng đá truoctran, 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 soi kèo bóng đá truoctran xuất hiện trongPhần 34.1.1.) Chỉ lần xuất hiện đầu tiên củadbnameđược đối xử theo cách này; bất kỳ sau đódbnameTham số được xử lý dưới dạng tên cơ sở dữ soi kèo bóng đá truoctran đơn giản.

Nói chung, soi kèo bóng đá truoctran 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ảinullhoặ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 soi kèo bóng đá truoctran xung đột với một từ xuất hiện trongTừ khóaMả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 soi kèo bóng đá truoctran hay không.dbnameMục nhập có thể bị ghi đè bởi các trường của chuỗi soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran mục đó cung cấp soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran mở rộng nào, bất kỳ tham số soi kèo bóng đá truoctran 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 34.14) đượ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 soi kèo bóng đá truoctran mới với máy chủ cơ sở dữ liệu.

PGConn *PQConnectDB (const char *Conninfo);

Hàm này mở soi kèo bóng đá truoctran 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ả soi kèo bóng đá truoctran 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 34.1.1Để biết chi tiết.

PQSetDbLogin

Tạo soi kèo bóng đá truoctran mới với máy chủ cơ sở dữ liệu.

PGConn *pqsetdblogin (const char *pghost,

Đây là tiền thân củaPQConnectDBVới một bộ tham số cố định. Nó có cùng chức năng ngoại trừ soi kèo bóng đá truoctran tham số bị thiếu sẽ luôn mang soi kèo bóng đá truoctran giá trị mặc định.nullhoặc chuỗi trống cho bất kỳ một trong soi kèo bóng đá truoctran tham số cố định được mặc định.

Nếudbnamechứa=dấu hiệu hoặc có soi kèo bóng đá truoctran hợp lệURItiền tố, nó được lấy dưới dạngConninfoChuỗi theo cách tương tự như thể nó đã được truyền choPQConnectDBvà soi kèo bóng đá truoctran tham số còn lại sau đó được áp dụng theo quy định choPQConnectDBParams.

PQSetDB

Tạo soi kèo bóng đá truoctran mới với máy chủ cơ sở dữ liệu.

pgconn *pqsetdb (char *pghost,

Đây là một macro gọipqsetdbloginvới soi kèo bóng đá truoctran con trỏ NULL choĐăng nhậpPWDtham số. Nó được cung cấp để tương thích ngược với soi kèo bóng đá truoctran chương trình rất cũ.

PQConnectStartParams
PQConnectStart
PQConnectPoll

Tạo soi kèo bóng đá truoctran 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ở soi kèo bóng đá truoctran 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 trongPQConnectDBParamshoặcPQConnectDB, và vì vậy ứng dụng có thể quản lý hoạt động này song song với soi kèo bóng đá truoctran hoạt động khác.

vớiPQConnectStartParams, soi kèo bóng đá truoctran cơ sở dữ liệu được tạo bằng các tham số được lấy từTừ khóaGiá trịmảng và được kiểm soát bởiexpand_dbname, như được mô tả ở trên choPQConnectDBParams.

vớiPQConnectStart, soi kèo bóng đá truoctran cơ sở dữ liệu được tạo bằng các tham số được lấy từ chuỗiConninfoNhư được mô tả ở trên choPQConnectDB.

KhôngPQConnectStartParamsNorPQConnectStartNorPQConnectPollSẽ chặn, miễn là một số hạn chế được đáp ứng:

  • Thehostaddrtham số phải được sử dụng một cách thích hợp để ngăn soi kèo bóng đá truoctran truy vấn DNS được thực hiện. Xem tài liệu của tham số này trongPhần 34.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 soi kèo bóng đá truoctran không chặn, hãy gọiPQConnectStarthoặcPQConnectStartParams. Nếu soi kèo bóng đá truoctran quả là null, thìlibpqđã không thể phân bổ mớiPGConnCấu trúc. Nếu không, một hợp lệPGConnCon trỏ được trả về (mặc dù chưa đại diện cho soi kèo bóng đá truoctran hợp lệ với cơ sở dữ liệu). Cuộc gọi tiếp theopqstatus (Conn). Nếu soi kèo bóng đá truoctran quả làConnection_Bad, cố gắng soi kèo bóng đá truoctran đã thất bại, thường là do các tham số soi kèo bóng đá truoctran không hợp lệ.

nếuPQConnectStarthoặcPQConnectStartParamsThà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ự soi kèo bóng đá truoctran. Sử dụngPQSocket (Conn)Để có được bộ mô tả của ổ cắm bên dưới soi kèo bóng đá truoctran cơ sở dữ liệu. (THẬN TRỌNG: Không cho rằng ổ cắm vẫn giống nhauPQConnectPollcuộ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ự). 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 soi kèo bóng đá truoctran đã thất bại hoặcpgres_polling_ok, cho biết soi kèo bóng đá truoctran đã được thực hiện thành công.

Bất cứ lúc nào trong quá trình soi kèo bóng đá truoctran, trạng thái của soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran đã thất bại; Nếu cuộc gọi trả vềConnection_ok, sau đó soi kèo bóng đá truoctran đã 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 soi kèo bóng đá truoctran không đồng bộ.

Connection_started

chờ soi kèo bóng đá truoctran được thực hiện.

Connection_Made

soi kèo bóng đá truoctran OK; chờ gửi.

Connection_Awaiting_Response

Đang chờ phản hồi từ soi kèo bóng đá truoctran 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_SetEnv

Cài đặt tham số điều khiển môi trường.

Connection_check_writable

Kiểm tra xem soi kèo bóng đá truoctran có thể xử lý các giao dịch ghi không.

Connection_consume

Tiêu thụ bất kỳ thông báo phản hồi còn lại nào trên soi kèo bóng đá truoctran.

28438_28720

Switch (pqstatus (Conn))

TheConnect_TimeoutTham số soi kèo bóng đá truoctran 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.PQConnectStarttheo sau làPQConnectPollVòng lặp tương đương vớiPQConnectDB.

Lưu ý rằng khiPQConnectStarthoặcPQConnectStartParamsTrả về một con trỏ không null, bạn phải gọipqfinishKhi 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 soi kèo bóng đá truoctran thất bại hoặc bị bỏ rơi.

PQConnDefaults

Trả về các tùy chọn soi kèo bóng đá truoctran mặc định.

PQConnInfooption *PQConnDefaults (void);

Trả về mảng tùy chọn soi kèo bóng đá truoctran. Điều này có thể được sử dụng để xác định tất cả có thểPQConnectDBTùy chọn và soi kèo bóng đá truoctran giá trị mặc định hiện tại của chúng. Giá trị trả về chỉ vào một mảngPQConninFooptionCấu trúc, soi kèo bóng đá truoctran thúc bằng một mục có nullTừ khóaCon trỏ. Con trỏ null được trả về nếu bộ nhớ không thể được phân bổ.ValTrường) sẽ phụ thuộc vào soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran được sử dụng bởi soi kèo bóng đá truoctran trực tiếp.


        

Trả về mảng tùy chọn soi kèo bóng đá truoctran. Điều này có thể được sử dụng để xác định tất cả có thểPQConnectDBTùy chọn và các giá trị được sử dụng để soi kèo bóng đá truoctran với máy chủ. Giá trị trả về chỉ vào một mảngPQConninFooptioncấu trúc, soi kèo bóng đá truoctran thúc bằng một mục có nullTừ khóaCon trỏ. Tất cả soi kèo bóng đá truoctran ghi chú ở trên choPQConnDefaultsCũng áp dụng cho soi kèo bóng đá truoctran quả củaPQConnInfo.

PQConnInfopars

Trả về các tùy chọn soi kèo bóng đá truoctran phân tích cú pháp từ chuỗi soi kèo bóng đá truoctran được cung cấp.

33097_33172

phân tích chuỗi soi kèo bóng đá truoctran và trả về các tùy chọn kết quả dưới dạng mảng; hoặc trả lạinullNếu có vấn đề với chuỗi soi kèo bóng đá truoctran. Chức năng này có thể được sử dụng để trích xuấtPQConnectDBTùy chọn trong chuỗi soi kèo bóng đá truoctran được cung cấp. Giá trị trả về chỉ vào một mảngPQConnInFooptioncấu trúc, soi kèo bóng đá truoctran thúc bằng một mục có nullTừ khóaCon trỏ.

Tất cả các tùy chọn pháp lý sẽ có mặt trong mảng soi kèo bóng đá truoctran quả, nhưngPQConninFooptionĐối với bất kỳ tùy chọn nào không có trong chuỗi soi kèo bóng đá truoctran sẽ cóValĐặt thànhnull; Giá trị mặc định không được chèn.

nếuerrmsgkhông phảinull, sau đó*errmsgđược đặt thànhnullThành công, khác với Amalloc'D chuỗi lỗi giải thích vấn đề. (Nó cũng có thể cho*errmsgđược đặt thànhnullvà hàm để 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 đếnPQConnInfopars. Ngược lại, nếu xảy ra lỗi vàerrmsgkhô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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran máy chủ không cố gắ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. ThePGConnCon trỏ không được sử dụng lại saupqfinishđã được gọi.

pqreset

Đặt lại kênh truyền thông cho soi kèo bóng đá truoctran chủ.

void pqreset (pgconn *Conn);

Hàm này sẽ đóng soi kèo bóng đá truoctran với máy chủ và cố gắng thiết lập soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran làm việc.

pqresetstart
pqresetpoll

Đặt lại kênh truyền thông cho soi kèo bóng đá truoctran chủ, theo cách không chặn.

int pqresetstart (pgconn *Conn);

Các chức năng này sẽ đóng soi kèo bóng đá truoctran với máy chủ và cố gắng thiết lập một soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran làm việc.pqreset(ở trên) trong đó chúng hành động theo cách không chặn. soi kèo bóng đá truoctran chức năng này bị hạn chế giống nhưPQConnectStartParams,PQConnectStartPQConnectPoll.

Để bắt đầu đặt lại soi kèo bóng đá truoctran, hãy gọipqresetstart. Nếu nó trả về 0, thiết lập lại đã thất bại.pqresetpollTheo cách tương tự như bạn sẽ tạo soi kèo bóng đá truoctran bằng cách sử dụngPQConnectPoll.

PQPingParams

PQPingParamsBáo cáo trạng thái của máy chủ. Nó chấp nhận các tham số soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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, từ khóa,

Hàm trả về một trong soi kèo bóng đá truoctran giá trị sau:

PQPing_OK

Máy chủ đang chạy và dường như là chấp nhận soi kèo bóng đá truoctran.

PQPing_reject

Máy chủ đang chạy nhưng ở trạng thái không liên kết soi kèo bóng đá truoctran (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ố soi kèo bóng đá truoctran đã cho (ví dụ: số cổng sai) hoặc có vấn đề soi kèo bóng đá truoctran mạng (ví dụ: tường lửa chặn yêu cầu soi kèo bóng đá truoctran).

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ì soi kèo bóng đá truoctran 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

PQPingBáo cáo trạng thái của máy chủ. Nó chấp nhận các tham số soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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);

Giá trị trả về giống như đối vớiPQPingParams.

34.1.1.Chuỗi soi kèo bóng đá truoctran

vàilibpqHàm phân chia chuỗi do người dùng chỉ định để có được các tham số soi kèo bóng đá truoctran. 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 soi kèo bóng đá truoctran đa máy chủ được cho phép như được mô tả thêm bên dưới.

34.1.1.1.Chuỗi soi kèo bóng đá truoctran từ khóa/giá trị

Trong định dạng từ khóa/giá trị, mỗi cài đặt tham số ở dạngTừ khóa = giá trị, với không gian giữa soi kèo bóng đá truoctran 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 = 'giá trị'. soi kèo bóng đá truoctran 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í dụ:

host = port localhost = 5432 dbname = mydb soi kèo bóng đá truoctran nối_timeout = 10

soi kèo bóng đá truoctran từ khóa tham số được công nhận được liệt kê trongPhần 34.1.2.

34.1.1.2.soi kèo bóng đá truoctran uris

Mẫu chung cho soi kèo bóng đá truoctranuriIS:

Postgresql: // [userspec@] [hostspec] [/dbname] [?paramspec]WHEREuserspecIS:

user[:Mật khẩu]hostspecIS:[host] [:Cổng] [,...]paramspecIS:

tên=giá trị[& ...]

TheuriNgười chỉ định sơ đồ có thể làPostgreSQL: //hoặcPostgres: //. Mỗi phần còn lạiURIsoi kèo bóng đá truoctran bộ phận là tùy chọn. soi kèo bóng đá truoctran ví dụ sau minh họa hợp lệuriCú pháp:

POSTGRESQL: //

soi kèo bóng đá truoctran 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ả soi kèo bóng đá truoctran tham số được đặt tên phải khớp với soi kèo bóng đá truoctran từ khóa được liệt kê trongPhần 34.1.2, ngoại trừ khả năng tương thích với soi kèo bóng đá truoctran JDBCuris, soi kèo bóng đá truoctran trường hợp củassl = trueđược dịch thànhSSLMode = Yêu cầu.

Mã hóa phần trăm có thể được sử dụng để bao gồm soi kèo bóng đá truoctran ký hiệu có ý nghĩa đặc biệt trong bất kỳ nàourisoi kèo bóng đá truoctran bộ phận, ví dụ: thay thế=với%3D.

Phần soi kèo bóng đá truoctran chủ có thể là tên soi kèo bóng đá truoctran 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ữ soi kèo bóng đá truoctran

Phần soi kèo bóng đá truoctran chủ được giải thích như được mô tả cho tham sốhost. Cụ thể, soi kèo bóng đá truoctran ổ 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, soi kèo bóng đá truoctran TCP/IP được bắt đầu.

Postgresql: /// dbname? Host =/var/lib/postgresql

Có thể chỉ định nhiều thành phần soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran được thiết lập thành công.

34.1.1.3.Chỉ định nhiều soi kèo bóng đá truoctran chủ

Có thể chỉ định nhiều máy chủ để soi kèo bóng đá truoctran, để chúng được thử theo thứ tự đã cho. Trong định dạng từ khóa/giá trị,host,hostaddrCổngTùy chọn chấp nhận danh sách soi kèo bóng đá truoctran 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ênhostaddrtương ứng với tên soi kèo bóng đá truoctran chủ thứ nhất, thứ haihostaddrtương ứng với tên soi kèo bóng đá truoctran 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ả soi kèo bóng đá truoctran máy chủ.

Trong định dạng URI soi kèo bóng đá truoctran, bạn có thể liệt kê nhiềuhost: cổngcặp được phân tách bằng dấu phẩy tronghostThành phần của URI.

Trong cả hai định dạng, một tên soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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, soi kèo bóng đá truoctran không thành công.

Nếu sử dụng tệp mật khẩu, 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 soi kèo bóng đá truoctran khác đều giống nhau cho mọi máy chủ trong danh sách;

34.1.2.Từ khóa tham số

soi kèo bóng đá truoctran từ khóa tham số hiện được công nhận là:

host

Tên của máy chủ để soi kèo bóng đá truoctran với.Nếu tên soi kèo bóng đá truoctran chủ bắt đầu bằng dấu gạch chéo, 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ữ.hostkhông được chỉ định hoặc trống, là soi kèo bóng đá truoctran 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 các máy không có ổ cắm tên miền Unix, mặc định là soi kèo bóng đá truoctran vớiLocalhost.

Một danh sách soi kèo bóng đá truoctran 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 34.1.1.3Để biết chi tiết.

hostaddr

Địa chỉ IP số của máy chủ để soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran địa chỉ đó.

Sử dụnghostaddrthay vìhostCho 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 soi kèo bóng đá truoctran ứng dụng với soi kèo bóng đá truoctran ràng buộc về thời gian. Tuy nhiên, tên máy chủ được yêu cầu cho soi kèo bóng đá truoctran 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. soi kèo bóng đá truoctran quy tắc sau được sử dụng:

  • nếuhostđược chỉ định mà không cóhostaddr, Tra cứu tên soi kèo bóng đá truoctran chủ xảy ra. (Khi sử dụngPQConnectPoll, Tra cứu xảy ra khiPQConnectPollĐầu tiên xem xét tên soi kèo bóng đá truoctran 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ị chohostaddrCung cấp địa chỉ mạng máy chủ. Nỗ lực soi kèo bóng đá truoctran 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ả haihosthostaddrđược chỉ định, giá trị chohostaddrCung cấp địa chỉ mạng soi kèo bóng đá truoctran chủ. Giá trị chohostbị 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 soi kèo bóng đá truoctran chủ.

Lưu ý rằng xác thực có khả năng thất bại nếuhostkhông phải là tên của soi kèo bóng đá truoctran chủ tại địa chỉ mạnghostaddr. Ngoài ra, khi cả haihosthostaddrđược chỉ định,hostđược sử dụng để xác định soi kèo bóng đá truoctran trong tệp mật khẩu (xemPhần 34.15).

Danh sách được phân tách bằng dấu phẩyhostaddrGiá trị cũng được chấp nhận, trong trường hợp đó, mỗi soi kèo bóng đá truoctran chủ trong danh sách được thử theo thứ tự. Một mục trống trong danh sách khiến tên soi kèo bóng đá truoctran chủ tương ứng được sử dụng hoặc tên soi kèo bóng đá truoctran chủ mặc định nếu đó cũng trống.Phần 34.1.1.3Để biết chi tiết.

Không có tên soi kèo bóng đá truoctran chủ hoặc địa chỉ soi kèo bóng đá truoctran chủ,libpqSẽ soi kèo bóng đá truoctran bằng cách sử dụng ổ cắm tên miền đơn vị cục bộ; hoặc trên các máy không có ổ cắm tên miền Unix, nó sẽ cố gắng soi kèo bóng đá truoctran vớilocalhost.

Cổng

Số cổng để soi kèo bóng đá truoctran tại máy chủ máy chủ hoặc tiện ích mở rộng tên tệp cho các soi kèo bóng đá truoctran miền đơn vị.Nếu nhiều soi kèo bóng đá truoctran chủ được đưa ra tronghosthoặchostaddrTham số, tham số này có thể chỉ định danh sách soi kèo bóng đá truoctran 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ả soi kèo bóng đá truoctran 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ữ soi kèo bóng đá truoctran. Mặc định giống như tên người dùng.Phần 34.1.1Để biết thêm chi tiết về những điều đó.

user

PostgreSQLTên người dùng để soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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 34.15). Mặc định là~/.PGPasshoặc%appdata%\ postgresql \ pgpass.confTrê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.)

Connect_Timeout

Chờ tối đa để soi kèo bóng đá truoctran, 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.1được hiểu là2. Thời gian chờ này áp dụng riêng cho từng tên soi kèo bóng đá truoctran chủ hoặc địa chỉ IP.Connect_Timeoutlà 5, mỗi máy chủ sẽ hết thời gian nếu không có soi kèo bóng đá truoctran nào được thực hiện trong vòng 5 giây, vì vậy tổng thời gian chờ đợi cho một soi kèo bóng đá truoctran có thể lên đến 10 giây.

client_encoding

Điều này đặtclient_encodingTham số cấu hình cho soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran khách (lc_ctypeBiến môi trường trên soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran. Ví dụ: đặt cái này thành-c geqo = offĐặt giá trị phiên củageqotham số đếnTẮT. Không gian trong chuỗi này được coi là soi kèo bóng đá truoctran đố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. Để thảo luận chi tiết về soi kèo bóng đá truoctran 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_namethông qua tham số soi kèo bóng đá truoctran hoặcPGAPPNAMEBiến môi trường. Chỉ định tên dự phòng rất hữu ích trong soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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.

Keepalive_idle

Kiểm soát số giây không hoạt động sau đó TCP sẽ gửi một thông báo giữ cho soi kèo bóng đá truoctran chủ. Giá trị bằng 0 sử dụng mặc định hệ thống.TCP_Keepidlehoặc tùy chọn ổ cắm tương đương có sẵn và trên Windows; Trên soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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_KeepIntVLhoặc tùy chọn ổ cắm tương đương có sẵn và trên Windows; Trên soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran 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_keepcnthoặc tùy chọn ổ cắm tương đương có sẵn; Trên soi kèo bóng đá truoctran hệ thống khác, nó không có tác dụng.

tty

Bỏ qua (trước đây, được chỉ định nơi gửi đầu ra gỡ lỗi soi kèo bóng đá truoctran chủ).

sao chép

Tùy chọn này xác định xem soi kèo bóng đá truoctran 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ì soi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran ứ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.

soi kèo bóng đá truoctran giá trị sau, không nhạy cảm với trường hợp, được hỗ trợ:

TRUE,trên,,1

soi kèo bóng đá truoctran chuyển sang chế độ sao chép vật lý.

Cơ sở dữ soi kèo bóng đá truoctran

soi kèo bóng đá truoctran chuyển sang chế độ sao chép logic, soi kèo bóng đá truoctran với cơ sở dữ liệu được chỉ định trongdbnametham số.

Sai,TẮT,Không,0

soi kèo bóng đá truoctran 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.

SSLMode

Tùy chọn này xác định xem có ưu tiên nào an toànSSLsoi kèo bóng đá truoctran TCP/IP sẽ được đàm phán với máy chủ. Có sáu chế độ:

vô hiệu hóa

Chỉ thử khôngSSLsoi kèo bóng đá truoctran

Cho phép

Đầu tiên hãy thử khôngSSLsoi kèo bóng đá truoctran; Nếu thất bại, hãy thửSSLsoi kèo bóng đá truoctran

ưa thích(mặc định)

Đầu tiên hãy thửSSLsoi kèo bóng đá truoctran; Nếu thất bại, hãy thử khôngSSLsoi kèo bóng đá truoctran

Yêu cầu

chỉ thửSSLsoi kèo bóng đá truoctran. 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ửSSLsoi kèo bóng đá truoctran 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ửSSLsoi kèo bóng đá truoctran, 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 soi kèo bóng đá truoctran chủ soi kèo bóng đá truoctran chủ được yêu cầu phù hợp với chứng chỉ

xemPhần 34.18Để biết mô tả chi tiết về cách soi kèo bóng đá truoctran tùy chọn này hoạt động.

SSLModebị 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 soi kèo bóng đá truoctran tùy chọnYêu cầu,Xác minh-CAhoặcxác minh-đầy đủsẽ gây ra lỗi, trong khi soi kèo bóng đá truoctran tùy chọnCho phépưa thíchsẽ được chấp nhận nhưnglibpqSẽ không thực sự thửSSLsoi kèo bóng đá truoctran.

abitessl

Tùy chọn này không được ủng hộ theo hướngSSLModeCài đặt.

Nếu được đặt thành 1, mộtSSLsoi kèo bóng đá truoctran 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 soi kèo bóng đá truoctran nếu máy chủ không chấp nhậnSSLsoi kèo bóng đá truoctran. Nếu đặt thành 0 (mặc định),libpqSẽ thương lượng loại soi kèo bóng đá truoctran 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.

SSLCompression

Nếu được đặt thành 1, dữ liệu được gửi qua các soi kèo bóng đá truoctran 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 vô hiệu hóa nén theo mặc định và nhiều bản phân phối hệ điều hành cũng vô hiệu hóa nó trong soi kèo bóng đá truoctran phiên bản trước, vì vậy, việc đặ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. Mặt khác,OpenSSLTrước 1.0.0 không hỗ trợ vô hiệu hóa nén, do đó tham số này bị bỏ qua với soi kèo bóng đá truoctran phiên bản đó và liệu nén có được sử dụng hay không tùy thuộc vào máy chủ.

Nếu bảo mật không phải là mối quan tâm chính, việc 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 soi kèo bóng đá truoctran khách, thay thế mặc định~/.Postgresql/postgresql.crt. Tham số này bị bỏ qua nếu soi kèo bóng đá truoctran 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ỉ soi kèo bóng đá truoctran khách. Nó có thể chỉ định tên tệp sẽ được sử dụng thay vì mặc định~/.Postgresql/postgresql.keyhoặc nó có thể chỉ định một khóa thu được từ bên ngoàiĐộng cơHàng(Độ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ơ.

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 soi kèo bóng đá truoctran chủ sẽ được xác minh để được ký bởi một trong những cơ quan này.~/.Postgresql/root.crt.

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). soi kèo bóng đá truoctran 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ủ.~/.Postgresql/root.crl.

Yêu cầu

Tham số này chỉ định tên người dùng hệ điều hành của soi kèo bóng đá truoctran chủ, ví dụaborpeer = postgres. Khi tạo soi kèo bóng đá truoctran ổ cắm miền Unix, nếu tham số này được đặt, máy khách sẽ kiểm tra ở đầu soi kèo bóng đá truoctran mà quy trình máy chủ đang chạy dưới tên người dùng được chỉ định;/TMPhoặ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 soi kèo bóng đá truoctran 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àPeerPhương thức xác thực được thực hiện; nhìn thấyPhần 20.9.

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 soi kèo bóng đá truoctran chủ để xác thực Kerberos để thành công.Phần 20.6.)

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 soi kèo bóng đá truoctran 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.

Dịch vụ

Tên dịch vụ để sử dụng cho soi kèo bóng đá truoctran tham số bổ sung. Nó chỉ định tên dịch vụ trongpg_service.confgiữ các tham số soi kèo bóng đá truoctran 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ố soi kèo bóng đá truoctran có thể được duy trì tập trung.Phần 34.16.

target_session_attrs

Nếu tham số này được đặt thànhRead-Write, Chỉ có soi kèo bóng đá truoctran trong đó các giao dịch đọc-ghi được chấp nhận theo mặc định được coi là chấp nhận được. Truy vấnHiển thị giao dịch_read_onlysẽ được gửi khi soi kèo bóng đá truoctran thành công; Nếu nó trả vềtrên, soi kèo bóng đá truoctran sẽ được đóng lại. Nếu nhiều máy chủ được chỉ định trong chuỗi soi kèo bóng đá truoctran, mọi máy chủ còn lại sẽ được thử giống như khi nỗ lực soi kèo bóng đá truoctran đã không thành công.any, coi tất cả các soi kèo bóng đá truoctran là chấp nhận được.