如何在 ubuntu/debian/linux 上检查 pg_hba.conf 和其他 postgresql conf 文件的语法?

Rém*_* B. 7 postgresql linux ubuntu configuration pg-hba.conf

很多时候,postgresql 服务在一些配置更改后无法重新启动。

是否有任何命令行工具允许在重新加载/重新启动服务之前检查pg_hba.conf和其他 pg*.conf文件的语法,或者在任何配置更改之后检查更好?

Phi*_*lᵀᴹ 10

你可以运行:

postgres=# SELECT pg_reload_conf();
 pg_reload_conf
----------------
 t
(1 row)

postgres=# 
Run Code Online (Sandbox Code Playgroud)

..从内psql。或者kill -HUPpostmaster过程。

任何配置验证错误都会被放入 Postgres 日志文件中,并且不会重新加载配置。示例日志:

2016-10-05 10:31:57 BST LOG:  received SIGHUP, reloading configuration files
2016-10-05 10:31:57 BST LOG:  invalid connection type "awdawdawdawd"
2016-10-05 10:31:57 BST CONTEXT:  line 1 of configuration file "/etc/postgresql/9.3/main/pg_hba.conf"
2016-10-05 10:31:57 BST WARNING:  pg_hba.conf not reloaded
Run Code Online (Sandbox Code Playgroud)

我不知道有一个工具只检查配置的有效性,但是 pgsql-hackers 邮件列表上有一个线程在这里讨论了一个验证器的提议。

  • 这不是真的。在结果中使用“t”重新加载conf后,我在postgres日志中看到了这一行:[9692]LOG:配置文件“/var/lib/pgsql/data/postgresql.conf”包含错误;应用了不受影响的更改 (2认同)