2012-01-10 254 views
6

试图执行命令FATAL:无法创建锁定文件 “postmaster.pid”:权限被拒绝

pg_ctl restart --pgdata "D:\Program Files\PostgreSQL\8.3\data" 

完全权限Postgres的用户d,当我收到错误

FATAL: could not create lock file "postmaster.pid": Permission denied 

:\, D:\ Program Files \,D:\ Program Files \ PostgreSQL \和D:\ Program Files \ PostgreSQL \ 8.3 \ data被设置。我还需要做什么?

回答

6

你必须要确保用户postgres有权写&执行/ var/run中/ PostgreSQL的

sudo chmod 765 /var/run/postgresql 
sudo chown postgres /var/run/postgresql 

我有这样的问题,由于安装的Postgres-XC和解决方案是将其删除。

pg_ctl是用于启动/停止/ etc postgres的最常用(推荐)方法。

由于某种原因,它不是我的postgres安装的一部分。
经过一番小小的调整,我安装了包含pg_ctl的postgre-xc。
postgres-xc将/ var/run/postgresql的所有者从postgres更改为postgres-xc。
这引起了很多关于无法锁定pid文件的头痛和警告。

因此,我删除了postgres-xc(并将/ var/run/postgresql的所有者恢复为postgres)。

代替使用pg_ctl的,我使用

service postgresql status

/etc/init.d/postgresql status控制postgres的。

希望这会帮助别人。

+0

不能在Windows 10中工作.... – 2015-10-31 03:33:52

+0

在Windows上的equiv将是net start postgresql-9.5,请参阅https://stackoverflow.com/questions/36629963/how-to-start-postgresql-on-windows – SamGoody 2017-07-12 14:21:13

3

postgresql service被登录在NETWORK SERVICE,所以您必须将数据目录(即:"D:\Program Files\PostgreSQL\8.3\data")完全控制到NETWORK SERVICE组。

相关问题