如何在PostgreSQL 9.4中更改日志目录位置?

3

我的当前日志目录路径为

**/opt/demo/PostgreSQL/9.4/data/pg_log**

我正在尝试将日志目录路径更改为

**/logs/demo/**

服务器在取消注释日志路径后无法启动,只有默认情况下才能启动。 postgresql.conf 文件如下:
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'         # Valid values are combinations of
                                  # stderr, csvlog, syslog, and eventlog,
# This is used when logging to stderr:
logging_collector = on
# These are only used if logging_collector is on:
#log_directory = '/logs/etbos/demo/'  #directorywherelogfiles are written
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'  # log file name pattern,


# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'

请添加错误日志,可能是postgres用户没有足够的权限访问新的日志目录。 - jdabrowski
这是在我更改日志路径之后的内容。2016年3月9日16:41:43 EST FATAL:无法打开日志文件“/logs/demo/postgresql-2016-03-09_164143.log”:权限被拒绝。 - John doe
1个回答

3

所以这就是我想到的 :) 你需要授予新日志目录的权限给postgres用户。

你可以使用以下命令来完成:

sudo chown postgres:postgres /your/new/log/dir/path

回答你的另一个问题:
要允许远程主机的TCP/IP连接,您需要编辑pg_hba.conf文件。 您可以添加以下行来允许全部TCP/IP连接:
host  all  all   0.0.0.0/32  md5

上述有五个参数,你可以在pg_hba.conf文件的顶部注释中阅读它们的详细说明,但简要来说,它们的意思是:

[connection_type] [database_name] [user_name] [remote_ip/mask] [auth_type]

非常感谢。它起作用了。您能告诉我如何启用TCP/IP连接以从pgadmin连接到服务器吗?请原谅我,我是初学者。 - John doe
非常感谢@jdabrowski。让我的工作变得更加容易了。应该是0.0.0.0/32还是0.0.0.0/0? - John doe
谢谢,但即使我在pg_hba.conf中进行了更改,我仍然无法使用pgadmin连接到数据库。它仍然显示连接被拒绝。 - John doe
也许您连接时使用了错误的端口?默认端口是5432,但是您可能在postgresql.conf文件中更改了它? - jdabrowski
是的,防火墙正在阻止它。非常感谢。 - John doe
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接