1 连接和认证 CONNECTIONS AND AUTHENTICATION
1.1 连接 CONNECTIONS
1.1.1 listen_addresses
字符型
默认: listen_addresses = 'localhost'
重启数据库生效
指定数据库用来监听客户端连接的TCP/IP地址。值是*表示服务器上所有的IP地址上监听用户请求。
可以写成机器的名字,也可以写成IP地址,不同的值用逗号分开,例如’server01’, ’140.87.171.49, 140.87.171.21’。
如果被设成localhost,表示数据库只能接受本地的客户端连接请求,不能接受远程的客户端连接请求。
1.1.2 port
数字型
默认: port = 5432
重启数据库生效
数据库监听客户端连接的TCP端口
1.1.3 max_connections
数字型
默认: max_connections = 100
重启数据库生效
它决定数据库可以同时建立的最大的客户端连接的数目。每个连接占用400字节共享内存。
注意:
work_mem是应用于每个数据库连接,所以max_connections*work_mem不应该超出实际内存大小。
如果work_mem设置为实际内存的2%,在极端情况下有50个查询都有排序要求,而且都使用2%的内存,则会导致swap的产生。
1.1.4 unix_socket_directories
字符型
默认: unix_socket_directories = '/var/run/postgresql, /tmp'
重启数据库生效
socket文件存放地址
1.1.5 superuser_reserved_connections
数字型
默认: superuser_reserved_connections = 3
重启数据库生效
表示预留给超级用户的数据库连接数目。它的值必须小于max_connections。
普通用户可建立的数据库最大并发连接的数目是max_connections-superuser_reserved_connections(默认为93)
1.1.6 unix_socket_group
字符型
默认: unix_socket_group = '',即为启动数据库的OS用户组。
重启数据库生效
设置Unix-domain socket的OS用户组。
1.1.7 unix_socket_permissions
数字型
默认: unix_socket_permissions = 0777
重启数据库生效
设置Unix-domain socket的访问权限,格式与操作系统的文件访问权限是一样的。
1.1.8 bonjour
布尔值
默认: bonjour = on
重启数据库生效
advertise server via Bonjour
1.1.9 bonjour_name
字符型
默认: bonjour_name = 'red'
重启数据库生效
defaults to the computer name
1.2 安全和认证 Security and Authentication
authentication_timeout = 1min # 1s-600s
ssl = off
ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
ssl_prefer_server_ciphers = on
ssl_ecdh_curve = 'prime256v1'
ssl_dh_params_file = ''
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
ssl_ca_file = ''
ssl_crl_file = ''
password_encryption = md5 # md5 or scram-sha-256
db_user_namespace = off
row_security = on
krb_server_keyfile = ''
krb_caseins_users = off
1.3 TCP Keepalives
下面三个变量对于通过Unix-domain socket建立的数据库连接没有任何影响。
1.3.1 tcp_keepalives_idle
数字型
默认: tcp_keepalives_idle = 0 。0表示使用OS值。
可动态修改
等同于OS的sysctl中的tcp_keepalive_time,即连接空闲到第一次发送TCP心跳包的时间,防止连接被网络设备中断。
1.3.2 tcp_keepalives_interval
数字型
默认: tcp_keepalives_interval = 0 。0表示使用OS值。
可动态修改
等同于OS的sysctl中的tcp_keepalive_intvl,即发送TCP心跳包的频率,防止连接被网络设备中断。
1.3.3 tcp_keepalives_count
数字型
默认: tcp_keepalives_count = 0 。0表示使用OS值。
可动态修改
等同于OS的sysctl中的tcp_keepalive_probes,即发送TCP心跳包的次数,超过该值断开连接。