PostgreSQL 服务器启动失败,无法创建锁定文件:权限被拒绝

Posted

技术标签:

【中文标题】PostgreSQL 服务器启动失败,无法创建锁定文件:权限被拒绝【英文标题】:PostgreSQL server failed to start, could not create lock file: permission denied 【发布时间】:2014-05-16 02:11:43 【问题描述】:

我正在尝试安装和运行 postgreSQL 服务器,无论何时使用

sudo apt-get install postgresql

我收到以下错误:

* 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)

我猜这是权限问题;我该如何解决呢? 我正在运行 Ubuntu 13.10

【问题讨论】:

这里有解决方案。我认为它应该帮助你。 askubuntu.com/questions/371722/uninstall-postgresql-from-ubuntu 【参考方案1】:

你能检查一下 /var/run 的文件权限吗?

ls -l /var/run

如果缺少“写”权限,请尝试

sudo chmod o+w /var/run

【讨论】:

当我输入时,我得到 lrwxrwxrwx 1 root root 4 april 1 17:46 /var/run -> /run 然后执行 sudo chmod o+w /var/run 然后运行 ​​postgresql 服务器,同样的问题。 你能试试“sudo apt-get update”然后“sudo apt-get install postgresql”吗? 这是一个符号链接。 /run 的烫发是什么? ls -ld /run【参考方案2】:

更改/var/run/postgresql的所有者并设置为postgres

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

如果你运行的用户没有sudo权限,那么

    更改为根目录:

    su -
    

    /var/run/postgresql 的所有权更改为用户postgres 和组postgres

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

我在 Ubuntu 14.04 上安装 postgres 时遇到了同样的问题,更改所有权为我解决了这个问题。

【讨论】:

我试过了,但是这是返回的; screenshot 您好,dawsondiaz,感谢您的屏幕截图。您必须先更改为root。您错过了 chown 命令之前的“sudo”。如果 dawson 用户没有 sudo 权限,则 1)通过“su -”更改为 root 和 2)“chown -R postgres:postgres /var/run/postgresql” 这对我也有用,但我已经安装了 Postgres 9.3。 Synaptic Package Manager 想要发布更新,在更新运行后,Postgres 无法重新启动,原因与您的问题中详述的相同。手动修复权限问题让我可以再次重新启动本地 postgres 服务器。 这也是Linux Mint上的解决方案。 在 Fedora 上将所有者更改为 postgres:postgres 对我不起作用,但将其更改为我当前的用户有效 sudo chown -R $USER:$USER /var/run/postgresql【参考方案3】:

锁定文件以/var/run 结束。要修复这个目录的权限,我需要运行sudo chmod a+w /var/run/postgresql

【讨论】:

我以不同于 postgres 的用户身份运行 postgresql,但它不允许我在 /var/run/postgresql 创建锁定文件。恕我直言,允许全局读/写是不好的,我刚刚将我的用户添加到 postgres 组。

以上是关于PostgreSQL 服务器启动失败,无法创建锁定文件:权限被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Vmware无法获取快照信息 锁定文件失败

Vmware无法获取快照信息 锁定文件失败

VMWare虚拟机提示:另一个程序已锁定文件的一部分,进程无法访问...模块"Disk"启动失败

免安装PostgreSQL启动服务及创建数据库

PostgreSQL 9.2 服务不断失败

另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“……”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。