文档章节

PostgreSQL数据文件权限不对导致开机启动失败

kenyon_君羊
 kenyon_君羊
发布于 2012/10/29 10:43
字数 421
阅读 430
收藏 1
上午开发告知机子重启后DB连接不了了,登进去一开,确实,进程啥的都没有起来。


手工启动:
[postgres@develop ~]$ pg_start
server starting
[postgres@develop ~]$ps -ef|grep postgres

发现还是没起来,查看日志,里面有如此报错信息:

[postgres@develop ~]$ tail -f pg_log
FATAL:  data directory "/home/postgres/data" has wrong ownership
HINT:  The server must be started by the user that owns the data directory.
FATAL:  data directory "/home/postgres/data" has wrong ownership
HINT:  The server must be started by the user that owns the data directory.
FATAL:  data directory "/home/postgres/data" has wrong ownership
HINT:  The server must be started by the user that owns the data directory.
FATAL:  data directory "/home/postgres/data" has group or world access
DETAIL:  Permissions should be u=rwx (0700).

信息给得很详细,postgresql的数据文件权限被改了,起码现在不是0700(只有用户权限)。返回去一看, 现在果然是777权限了。而且用户的所属也被改了,改成其他用户了。
[postgres@develop ~]$ ll /home/postgres
drwxrwxrwx 14 tomcat ddd     4096 10-29 09:41 data

改回去:
[postgres@develop ~]$chown -R postgres:postgres  /home/postgres/data
[postgres@develop ~]$chmod 0700 /home/postgres/data

查看:
drwx------ 14 postgres postgres     4096 10-29 09:41 data


再启动
[postgres@develop ~]$ pg_start
server starting

正常了。后来了解到是开发的一个误操作,改其他文件的权限的时候把DB文件的用户组权限也改了  

总结:
默认情况下,PostgreSQL启动时,启动DB用户必须拥有数据文件的所属权限(user权限),且权限不能过大,否则就会报上述错误。其实这是一个安全的保护措施,防止DB文件因为权限开设太大而被其他非允许的用户访问。

© 著作权归作者所有

共有 人打赏支持
kenyon_君羊
粉丝 499
博文 170
码字总数 121714
作品 0
杭州
其他
私信 提问
加载中

评论(2)

dreamers
dreamers
学习中。。。
shao
shao
牛......
PostgreSQL 9.4.3, 9.3.8, 9.2.12, 9.1.17 & 9.0.21 发布

PostgreSQL 9.4.3, 9.3.8, 9.2.12, 9.1.17 & 9.0.21 发布,此版本主要是修复之前更新版本因为文件权限问题而启动失败的问题。 在 2015-05-22 更新的版本中添加了一个 anti-corruption 步骤,...

oschina
2015/06/05
2K
19
通过源码编译安装PostgreSQL步骤及问题总结

今天博主在ubuntu 10.04安装从enterprisedb下载的postgresql安装包是出现一个问题,运行后提示“Segmentation fault”错误,安装失败。之前我在12.04版的系统中有安装过,一切正常。之后公司...

章郎虫
2014/01/15
0
0
1 Ambari从Postgresql8.4升级到9.2

1.1 安装Postgresql9.2 1) 安装依赖 安装readline-devel.x8664 0:6.0-4.el6和ncurses-devel.x8664 0:5.7-3.20090208.el6 rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm rpm -ivh re......

yntmdr
2018/07/06
0
0
PostgreSQL 安装步骤

前言 最近需要将数据库从MySql迁移到PostgreSQL上来,故学习了下postgres的安装,写本文记录下. @Author duangr @Website http://my.oschina.net/duangr/blog/181914 1.相关环境 Host Name IP...

一只小逛
2013/12/05
0
2
postgresql常见命令及操作

  pgsql已经更新到beta11了不同版本的服务器启动或相关命令、配置可能会有不同所以得根据pg版本进行操作。下面记录一些工作中常用到的一些操作主要包括服务启动、备份/恢复数据、数据目录迁...

zhoujie0111
2018/06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 配置 root目录、虚拟目录alias

Nginx是通过 alias 设置虚拟目录,在Nginx的配置中,alias目录和root目录是有区别的。 alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的; root指定...

Yue_Chen
17分钟前
1
0
Nginx的SSL

Nginx的SSL 当我们访问站点时,网址的前缀是https的就是启用了ssl SSL介绍:SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供...

李超小牛子
23分钟前
3
0
matlab-自控原理 roots 传递函数 零极点

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clearclc% s^4+5*......

志成就
25分钟前
1
0
spring官网上下载历史版本的spring插件,springsource-tool-suite

spring官网下载地址(https://spring.io/tools/sts/all),历史版本地址(https://spring.io/tools/sts/legacy)。 注:历史版本下载的都是装好插件的eclipse,而非我们需要的插件 目前官网上提...

开源oschina
25分钟前
1
0
同一台服务器,mysql登录不了指定端口的问题

一台服务器上启动了两个mysql服务,端口分别是3306,3307 mysql -P3307 -uroot -p,输入密码,登录失败 输入3306的密码,登录成功,结果登到3306数据库上去了 查资料发现,不指定主机-h 的话,...

chdahuzi
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部