连接参数参考
常用的连接参数,如表1所示。
| 参数名称 | 参数说明 | 参数值 |
|---|---|---|
| dbname | 数据库名称。 | 默认值:当前操作系统用户名。 |
| user | 用户名。 | 默认值:当前操作系统用户名。 |
| password | 密码。 | 默认值:NULL |
| host | 指定要连接的主机名或者数据库IP地址。 非透明多写特性下:可指定多个主机名或IP地址,主机名或IP地址间以逗号隔开,默认为UNIX socket类型。 | 默认值:NULL |
| port | 连接端口号。
| 默认值: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方式连接,则忽略此参数。 | 取值范围:
默认值:1 |
| sslcrl | 指定SSL证书吊销列表(CRL,Certificate Revocation List)的文件路径。若服务端证书存在于已配置的CRL中,客户端在SSL握手阶段将拒绝认证并终止连接。 | 默认值:NULL |
| hostaddr | 数据库IP地址。只能指定IP地址来连接数据库,而不能通过主机名解析。 须知:
| 默认值: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的网络通信中。 须知:
| 取值范围:
默认值: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之类的工具在内部使用的协议,但也可以被第三方应用使用。 | 取值范围:支持以下参数值,与大小写无关。
默认值:NULL 须知: 在物理或者逻辑复制模式中,仅能使用简单查询协议。 |
| requirepeer | 指定服务器操作系统的用户名。 | 默认值:NULL |
| target_session_attrs | 设定连接的主机的类型。仅当主机类型与设定值匹配时,才能连接成功。此参数仅在指定多个IP地址时生效。 | 取值范围:
默认值: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也不支持负载均衡。