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虚拟机提示:另一个程序已锁定文件的一部分,进程无法访问...模块"Disk"启动失败
另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“……”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机。