在我的mac os x开发机器上,我安装了postgres 9.1 /Library/PostgreSQL/9.1并且PostgreSQL的数据目录在/Library/PostgreSQL/9.1/data我已经配置了日志记录,所以我从postgres获得了关于在服务器上执行什么SQL查询的好日志....等等这些都写给/Library/PostgreSQL/9.1/data/pg_log我使用企业db预打包的postgres二进制文件.
问题是$ PGDATA由运行postgres进程的postgres用户拥有.当我更改了数据目录的权限时,chmod o+xr datapostgres拒绝启动并告诉我它不能以postgres目录开始,除了postgres用户之外还有权限.
FATAL: data directory "/Library/PostgreSQL/9.1/data" has group or world access
DETAIL: Permissions should be u=rwx (0700)
Run Code Online (Sandbox Code Playgroud)
只是为了获取日志文件而不得不进出postgres dir是很烦人的.
在Mac OS X上配置postgres日志记录的好方法是什么,以便从登录的任何用户轻松访问日志文件,而不必使用sudo或成为postgres用户?
更新请参阅下面的答案,了解我过去使用的确切配方.
Chr*_*ers 10
简单的事实是PostgreSQL不允许你这样做.但是,有一个更好的解决方案,即确保在postgresql.conf中设置以下内容:
这是默认值.如果它被注释掉而没有另外设置,那没关系:
log_destination = 'stderr'
Run Code Online (Sandbox Code Playgroud)
这需要设置为:
logging_collector = on
Run Code Online (Sandbox Code Playgroud)
然后,您可以将其指向其他位置:
log_directory = 'pg_log'
Run Code Online (Sandbox Code Playgroud)
您可以将其指向可以访问它的位置.例如,给postgres适当的访问权限并指向:
log_directory = '/var/log/postgresql'
Run Code Online (Sandbox Code Playgroud)
然后,只要它不在数据目录中,您就可以设置所需的任何权限.
我过去常常使用的步骤.
/var/pg_log并使其可读写chmod o+wxr在postgresql.conf文件中设置以下值
log_directory ='/ var/pg_log'
log_file_mode = 0506
重启postgres
/var/pg_log应该有postgres .log文件,您可以使用mac os x,console utility监视它们.没有sudo需要看到那里发生了什么.注意Postgres拒绝在日志文件中允许任何高于511的权限.
| 归档时间: |
|
| 查看次数: |
11944 次 |
| 最近记录: |