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

55,879

Solution 1

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.

Solution 2

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.

Solution 3

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
Share:
55,879

Related videos on Youtube

dawsondiaz
Author by

dawsondiaz

I am a novice programmer, who sides more with web development. I have most experience with Python, HTML, CSS, and JavaScript. I have created a "hello world," and worked in several other languages including Java, Ruby, and Batch. Links: GitHub

Updated on July 09, 2022

Comments

  • dawsondiaz
    dawsondiaz almost 2 years

    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

  • dawsondiaz
    dawsondiaz about 10 years
    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.
  • new_sys_admin
    new_sys_admin about 10 years
    Could you try "sudo apt-get update" and then "sudo apt-get install postgresql" ?
  • Craig Ringer
    Craig Ringer about 10 years
    It's a symlink. What're the perms on /run? ls -ld /run
  • dawsondiaz
    dawsondiaz about 10 years
    I tried, however this is what was returned; screenshot
  • Jessica Chiang
    Jessica Chiang about 10 years
    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"
  • danielricecodes
    danielricecodes over 9 years
    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.
  • Frederik Krautwald
    Frederik Krautwald about 9 years
    This is also the solution on Linux Mint.
  • Mukesh Sai Kumar
    Mukesh Sai Kumar over 4 years
    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.
  • Asalle
    Asalle almost 4 years
    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/postgresql