Dav*_*vid 14 networking autohotkey postgresql pgadmin pgadmin3
我正在使用 postgres.heroku.com 来托管我的数据库。这意味着我无法更改服务器设置。因此,这个问题的答案对我没有帮助。Heroku 不愿意改变他们的设置(我已经联系过他们)。
我想知道破解 PgAdmin III 以保持连接活动的最佳方法是什么。我正在考虑创建 Autohotkey 宏以在 PgAdmin 处于后台时自动执行用户界面操作,或者使用某种网络工具强制代表 PgAdmins 发送网络消息。
我还收到了一份 500 美元的报价,要求某人更改为 PgAmin III 的代码。PgAdmin 的开发者,不会修改代码,只是因为 Heroku。
我该怎么办?PgAdmin 在很多方面都优越,它只是有这个缺点。
Cra*_*ger 18
libpq,底层 PostgreSQL 客户端库,可以keepalives选择启用 TCP keepalives。
看起来 PgAdmin-III 不允许您直接指定任意连接参数,但有一个解决方法。
当您查看 PgAdmin-III 中的连接配置时,您将看到一个“服务”选项。这是指连接服务文件。要使用它,请创建一个~/.pg_service.conf内容如下:
[myherokudb]
user=myusername
keepalives=1
connect_timeout=20
keepalives_idle=10
Run Code Online (Sandbox Code Playgroud)
当从 PgAdmin-III 连接时,请myherokudb在该service字段中输入。
这将导致 PgAdmin-III 使用服务文件中指定的连接参数,包括启用 keepalive。
(如果您使用的是 Windows,则服务文件可能位于其他位置;请参阅文档)。
没有环境变量libpq来控制keepalives,所以你不能这样设置,你必须使用服务文件。
添加对 PgAdmin-III 的附加连接参数的支持,或者在连接选项中添加一个复选框来控制 keepalives 参数,应该是非常简单的。我想知道 Dave 是否理解您要求重新提供资助这项工作的要求。
更新:在PGSYSCONFDIR环境变量中指定的位置查找服务文件。如果未设置,则默认为特定于平台的位置,Windows 似乎没有正确记录该位置。我会提交一个文档补丁。的文档.pgpass显示了它的路径%APPDATA%\postgresql\pgpass.conf,所以~/.pg_service.conf应该是%APPDATA%\postgresql\pg_service.conf......但它似乎不是。
其实正确的路径是:
%APPDATA%\postgresql\.pg_service.conf
Run Code Online (Sandbox Code Playgroud)
所以:
我在 Windows 上进行了测试,发现在 Windows 上不能将hostPgAdmin-III 中的字段留空。PgAdmin-III 似乎用连接对话框中指定的内容覆盖了服务文件中指定的任何主机。因此,您不应host在服务文件中包含密钥。(我会报告一个错误)。
在 Windows 中关闭“隐藏已知文件类型的文件扩展名”,因此您不会意外调用它.pg_service.conf.txt。如果您不确定它的命名是否正确,请在列表视图中检查 Windows 资源管理器中的“类型”列;它会读取“文本文档”,如果它的正确命名.pg_service.conf.txt,并且CONF File如果它的正确命名.pg_service.conf。如果您在重命名它时遇到问题,请关闭“隐藏已知文件类型的文件扩展名”,或使用合理的文本编辑器,如记事本++,它可以让您创建任意命名的文件。
请注意文件名中的前导句点(点)。是的,这与 不同pgpass.conf,是的,这很烦人,接近错误。
| 归档时间: |
|
| 查看次数: |
17758 次 |
| 最近记录: |