新安装的 PostgreSQL 中出现奇怪的权限错误

新安装的 PostgreSQL 中出现奇怪的权限错误

刚刚安装的 PostgreSQL(配置被覆盖)无法启动:

$ sudo service postgresql start
 * Starting PostgreSQL 9.1 database server
 * Error: could not read /etc/postgresql/9.1/main/postgresql.conf: Permission denied

看起来它应该能够读取它:

$ ls -l postgresql.conf 
-rw------- 1 postgres postgres 19450 2012-06-14 10:07 postgresql.conf

但好吧,我会添加chmod +r它来测试它是否有效。

$ sudo chmod +r postgresql.conf 
$ sudo service postgresql start
 * Starting PostgreSQL 9.1 database server
 * The PostgreSQL server failed to start. Please check the log output:
Error: Could not open log file /var/log/postgresql/postgresql-9.1-main.log

嗯?

$ ls -l /var/log/postgresql/
total 4
-rw-r----- 1 postgres adm 827 2012-06-14 10:07 postgresql-9.1-main.log

我不明白。这到底是哪里出了问题?以前这个方法还可以用。

我可以监视哪些进程尝试打开该文件吗?


这是 EC2 上的 Ubuntu 11.10,使用 Chef。为了完整起见,以下是配方:

# Install PostgreSQL
package "postgresql-9.1"

# Stop server
service "postgresql" do
    action :stop
end

# Overwrite configuration (setting data dir)
template "/etc/postgresql/9.1/main/postgresql.conf" do
    source "postgresql-conf.erb"
    owner "postgres"
    group "postgres"
end

# Start server
service "postgresql" do
    action :start
end

答案1

自定义配置文件 ( postgresql.conf) 指向了不存在的数据目录。当然,这是一个问题(我通过设置数据目录解决了这个问题),但这与打印的错误无关。再次,PostgreSQL 错误没有那么有帮助。

更新:

当数据目录存在时,我遇到了同样的错误,但所有权不正确

相关内容