.psqlrc - 设置 keepalives_idle 连接参数

Kub*_*uba 1 postgresql psql

是否可以设置keepalives_idle参数.psqlrc以便我打开的每个连接都使用它?

我终于找到了这个选项,它是我的连接断开问题的补救措施。

我真的很想为我打开的所有会话全局设置它psql

Eva*_*oll 5

使用 TCP Keepalive,谁发送和谁接收都无关紧要。重要的是它发生了,所以路由不会被 NAT 设备丢失或在任何一端关闭。我不知道您为什么要在客户端上设置它,正如 libpq 提供的那样,这两种方法都可以完成相同的事情。

如何从服务器设置保活传输

这只为您的会话设置它

要将tcp_keepalives_idle服务器设置为客户端,请使用

SET tcp_keepalives_idle = 42;
Run Code Online (Sandbox Code Playgroud)

你可以把你想要的任何东西放在你的里面~/.psqlrc,它会被 psql 执行(除了 under-c-x)。因此,如果您希望它在 psql 会话中始终发生,请将此命令附加到末尾。

echo "SET tcp_keepalives_idle = 42;" >> ~/.psqlrc
Run Code Online (Sandbox Code Playgroud)

如何设置来自客户端的保活传输

根据此邮件列表帖子,您可以通过键入在客户端上进行设置

psql "host=127.0.0.1 dbname=myDB keepalives=1"
Run Code Online (Sandbox Code Playgroud)

  • libpq 中的@Kuba,该库用于构建连接到 Postgresql 的 C 程序,它称为“keepalives_idle”。在服务器附带的客户端 psql 中,它称为 [`tcp_keepalives_idle`](https://www.postgresql.org/docs/9.6/static/runtime-config-connection.html) (2认同)