如何语法检查PostgreSQL配置文件?

时间:2013-05-02 08:15:43

标签: postgresql syntax configuration-files

我经常编辑pg_hda.conf文件,我只是想知道是否有办法确保我刚写的内容是正确的。

到目前为止,我正在使用测试服务器来检查我的更改。

就像Apache有apache2ctl -t命令一样,Postgres有类似的东西吗?

3 个答案:

答案 0 :(得分:11)

无法执行与apache2ctl类似的操作。如果重新加载配置文件并且存在语法错误,PostgreSQL服务器将在日志中抱怨并拒绝加载新文件。因此,通过制作语法错误来搞乱某些事情的风险很小。 (当然,这不会防止您编写语义上错误的东西,但apache2ctl也不会这样做。)除此之外,测试服务器中的更改可能是一个好主意,并且一个以受控方式将这些变化传播到生产的系统。

答案 1 :(得分:1)

请参阅:https://dba.stackexchange.com/a/151457/177071

您还有另一种方法可以测试配置文件是否正确。

在命令行中,输入select pg_reload_conf();

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

这表明您的文件是正确的。否则会失败。

答案 2 :(得分:1)

已经很长时间了,但是现在可以检查pg_hba.conf文件了:

select pg_hba_file_rules();

此外,您可以使用pg_file_settings视图在postgresql.conf中定义错误:

postgres=# select sourcefile, name,sourceline,error from pg_file_settings where error is not null;
               sourcefile               |  name  | sourceline |                error
----------------------------------------+--------+------------+--------------------------------------
 /var/lib/pgsql/11/data/postgresql.conf | lalala |          1 | unrecognized configuration parameter

在这里我放了一些不好的东西来检查它是否正确:)