2012-01-10 253 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組。

相關問題