更新时间:2026-07-28 GMT+08:00
分享

连接参数参考

常用的连接参数,如表1所示。

表1 连接参数说明

参数名称

参数说明

参数值

dbname

数据库名称。

默认值:当前操作系统用户名。

user

用户名。

默认值:当前操作系统用户名。

password

密码。

默认值:NULL

host

指定要连接的主机名或者数据库IP地址。

非透明多写特性下:可指定多个主机名或IP地址,主机名或IP地址间以逗号隔开,默认为UNIX socket类型。

默认值:NULL

port

连接端口号。

  • 非透明多写特性下,该参数为主机服务器的端口号。当host为多个IP地址时,如果端口号相同,则指定一个端口号即可;如果端口号不同,则端口号需要与IP地址一一对应,以逗号分隔。

默认值:5432

sslmode

指定SSL认证方式。

取值范围:disable、allow、prefer、require、verify-ca、verify-full。各取值的详细含义,请参见表1

默认值:prefer

sslcert

SSL连接时,指定客户端证书路径。

默认值:NULL(表示读取用户根目录的客户端证书文件)

sslkey

SSL连接时,指定客户端密钥路径。

默认值:NULL(表示读取用户根目录的密钥文件)

sslrootcert

SSL连接时,指定根证书路径。

默认值:NULL(表示读取用户根目录的SSL根证书)

sslcompression

SSL连接时发送的数据是否被压缩。若不是以SSL方式连接,则忽略此参数。

取值范围:

  • 0:表示SSL连接时发送的数据不被压缩。
  • 1:表示SSL连接时发送的数据被压缩。

默认值:1

sslcrl

指定SSL证书吊销列表(CRL,Certificate Revocation List)的文件路径。若服务端证书存在于已配置的CRL中,客户端在SSL握手阶段将拒绝认证并终止连接。

默认值:NULL

hostaddr

数据库IP地址。只能指定IP地址来连接数据库,而不能通过主机名解析。

须知:
  • 同时指定host和hostaddr时,会优先使用hostaddr。

默认值:NULL

connect_timeout

连接的最大等待时间。建议设置连接超时值不小于2秒。

单位:s(秒)

默认值:0,表示不超时。

client_encoding

客户端编码格式。

默认值:建立连接时服务端返回的客户端编码格式。

application_name

设置连接数据库的应用程序名称。

默认值:NULL

fallback_application_name

设置连接数据库的备用应用名称。当未显式设置application_name参数时,则会自动回退到fallback_application_name参数值,即将fallback_application_name参数值作为连接的默认应用名称。

默认值:NULL

keepalives

控制客户端与数据库连接的TCP Keepalive机制是否启用。TCP保活机制主要用于检测长时间没有数据交换的连接是否仍然有效,通常用在基于IP的网络通信中。
须知:
  • TCP保活机制通过定期发送TCP探测包检测连接状态。Keepalive相关的参数有keepalives_idle、keepalives_interval、keepalives_count。
    1. 空闲时间阈值:若连接空闲超过keepalives_idle秒,系统会发送首个Keepalive探测包。
    2. 后续探测:若未收到响应,会按keepalives_interval间隔继续发送探测包,最多尝试keepalives_count次。
    3. 连接状态:若所有探测均失败,连接将被标记为断开,Psycopg会抛出异常或尝试重连。
  • 而在Unix域套接字这种本地进程间通信中,由于没有网络延迟和连接中断的问题,所以不需要TCP保活机制来检查连接状态。因此通过Unix域套接字进行连接,则忽略Keepalive相关参数。

取值范围:

  • 1:表示启用。
  • 0:表示禁用。

默认值:1

keepalives_idle

连接空闲后,首次发送TCP Keepalive探测包的等待时间。也就是当数据库连接空闲时间(从最后一次数据传输开始计算空闲时间)超过keepalives_idle设定值后,客户端会开始向服务端发送TCP Keepalive探测包。

单位:s(秒)

默认值:0,表示使用系统TCP配置值。

keepalives_interval

客户端未收到服务端ACK响应,重试探测的时间间隔。

单位:s(秒)

默认值:0,表示使用系统TCP配置值。

keepalives_count

指定发送TCP Keepalive探测包的次数。也就是允许连续探测失败的次数,超过则判定连接断开。

默认值:0,表示使用系统TCP配置值。

options

指定在连接开始时发送到服务器的命令行选项。例如,将该参数设置为-c geqo=off表示设置会话的geqo参数值为off。

默认值:NULL

replication

这个选项决定是否该连接应该使用复制协议而不是普通协议。这是PostgreSQL的复制连接以及pg_basebackup之类的工具在内部使用的协议,但也可以被第三方应用使用。

取值范围:支持以下参数值,与大小写无关。

  • true、on、yes、1、reply:用于集群内的连接,连接进入到物理复制模式。
  • standby_cluster、hadr_main_standby、hadr_standby_cn:用于集群间的连接,连接进入到物理复制模式。
  • database:连接进入到逻辑复制模式,连接到dbname参数指定的数据库。
  • false、off、no、0、NULL(缺省值):该连接是一个常规连接,这是默认行为。

默认值:NULL

须知:

在物理或者逻辑复制模式中,仅能使用简单查询协议。

requirepeer

指定服务器操作系统的用户名。

默认值:NULL

target_session_attrs

设定连接的主机的类型。仅当主机类型与设定值匹配时,才能连接成功。此参数仅在指定多个IP地址时生效。

取值范围:

  • any:可对所有类型的主机进行连接。
  • read-write:仅对可读写的主机进行连接。
  • read-only:仅对只读的主机进行连接。
  • primary:仅对主备系统中的主节点进行连接。
  • standby:仅对主备系统中的备节点进行连接。
  • prefer-standby:首先尝试与主备系统中的备节点进行连接。如果host列表的所有备节点都连接失败,则尝试以any模式进行连接。

默认值:primary

tcp_user_timeout

在支持tcp_user_timeout套接字选项的操作系统中,此参数用于设置传输数据在TCP连接被内核强制关闭前允许保持未确认状态的最长时间。当使用Unix域套接字建立连接时,此参数不生效。

单位:s(秒)

默认值:0,表示使用系统TCP配置值。

rw_timeout

设置客户端连接的读写超时时间。

当libpq侧触发超时且连接关闭时,libpq侧下发给数据库侧正在运行的业务会被强制终止。该能力受GUC参数check_disconnect_query控制,设置为on表示支持该能力,设置为off表示不支持该能力。

单位:s(秒)

默认值:0,表示不设置超时时间。

  • Psycopg2连接能力基于底层libpq库实现。在负载均衡能力方面存在以下差异:
    • 非透明多写特性下:由于libpq不支持负载均衡机制,因此Psycopg2也不支持负载均衡。

相关文档