PostgreSQL server failed to start, could not create lock file: permission denied
Asked Answered
D

4

49

I am attempting to install and run a postgreSQL server, whenever I install it using

sudo apt-get install postgresql

I get the following error:

* Starting PostgreSQL 9.1 database server                                       
* The PostgreSQL server failed to start. Please check the log output:
2014-04-03 17:18:16 PDT FATAL:  could not create lock file     "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
                                                                    [fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing postgresql-common (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of postgresql-9.1:
postgresql-9.1 depends on postgresql-common (>= 115~); however:
Package postgresql-common is not configured yet.

dpkg: error processing postgresql-9.1 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of postgresql:
 postgresql depends on postgresql-9.1; however:
  Package postgresql-9.1 is not configured yet.

dpkg: error processing postgresql (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a          previous failure.
Errors were encountered while
 processing:
 postgresql-common
 postgresql-9.1
 postgresql
E: Sub-process /usr/bin/dpkg returned an error code (1)

I am guessing it's a permissions issue; how do I go about solving it? I am running Ubuntu 13.10

Dov answered 4/4, 2014 at 0:23 Comment(1)
Here u have the solution. I think that it should help u. askubuntu.com/questions/371722/uninstall-postgresql-from-ubuntuClementius
G
90

Change the owner of /var/run/postgresql and set it to postgres:

sudo chown -R postgres:postgres /var/run/postgresql

If the user you are running as does not have sudo privilege, then

  1. Change to root:

    su -
    
  2. Change ownership of /var/run/postgresql to user postgres and group postgres:

    chown -R postgres:postgres /var/run/postgresql
    

I had the same problem when installing postgres on Ubuntu 14.04 and changing the ownership fixed the problem for me.

Gluten answered 14/5, 2014 at 5:4 Comment(5)
I tried, however this is what was returned; screenshotDov
Hi dawsondiaz, thanks for the screenshot. You have to change to root first. You missed the "sudo" before the chown command. If the dawson user does not have sudo priviledge, then 1) Change to root by "su -" and 2) "chown -R postgres:postgres /var/run/postgresql"Gluten
This worked for me too, but I already had Postgres 9.3 installed. Synaptic Package Manager wanted to issue an update and after that update ran, Postgres failed to restart for the same reason detailed in your question. Manually fixing the permission issue allowed me to restart my local postgres server again.Reluctance
This is also the solution on Linux Mint.Lockman
on fedora changing owner to postgres:postgres didn't work for me, but changing it to my current user worked sudo chown -R $USER:$USER /var/run/postgresqlImponderable
P
23

The lock file ends up in /var/run. To fix the permissions of this dir, I needed to run sudo chmod a+w /var/run/postgresql.

Principal answered 1/9, 2015 at 22:12 Comment(1)
I run postgresql as a different user than postgres and it didn't allow me to create a lock file at /var/run/postgresql. IMHO allowing global read/writes is bad and I just added my user to the postgres group.Beliabelial
S
2

Could you check the file permissions of /var/run?

ls -l /var/run

If 'write' permission is missing, try

sudo chmod o+w /var/run
Spoilt answered 4/4, 2014 at 0:38 Comment(3)
When I enter that I get, lrwxrwxrwx 1 root root 4 april 1 17:46 /var/run -> /run I then execute sudo chmod o+w /var/run Then follow that with running the postgresql server, same issue.Dov
Could you try "sudo apt-get update" and then "sudo apt-get install postgresql" ?Spoilt
It's a symlink. What're the perms on /run? ls -ld /runStrangle
G
-1

I spent a lot of time looking for a solution.

I added my user to the postgres group, but that didn't help In the end I was forced to choose not the safest way.

  chmod -R 777 /var/run/postgresql/

Source

My error

FATAL: could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied

Gybe answered 15/7, 2023 at 15:23 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.