首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为默认守护程序用户通过YUM repo安装时,如何在centos上运行postgres

作为默认守护程序用户通过YUM repo安装时,如何在centos上运行postgres
EN

Stack Overflow用户
提问于 2012-10-18 02:32:21
回答 2查看 19.2K关注 0票数 3

在Centos 6上通过yum仓库安装了Postgres 9.2的新版本,当postgres被配置为开箱即用'postgres:postgres‘(u:g)运行时,如何以不同的用户身份运行postgres?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-18 02:32:21

这只适用于新安装(因为它与我的情况有关),因为它涉及到清除数据目录。

在使用打包的启动脚本进行全新安装时,我采取了以下步骤来解决此问题:

如果您已经使用postgres用户:组执行了initdb过程,请删除postgres数据目录/var/lib/pgsql/9.2/data将启动脚本(/etc/init.d/postgresql-9.2)配置为NEWUSER:NEWGROUP.

  • Modify以使用NEWUSER:NEWGROUP.

  • Modify替换postgres:postgres的所有实例使用NEWUSER.

  • run /etc/init.d/postgres initdb替换任何$SU -l postgres行中的所有$SU -l postgres实例以使用新/etc/init.d/postgres initdb重新生成集群请确保创建的所有日志均归新用户所有或移除旧日志如果在initdb上出现错误(在我的例子中,配置文件是在/var/lib/pgsql/9.2/data/postgresql.conf).

  • Startup postgres中找到的,它现在应该在新用户/组下运行。

我知道这可能不是其他人正在寻找的,如果他们有现有的postgres数据库,并想重新启动服务器,以不同的用户/组组合运行-这不是我的情况,我没有看到任何地方张贴了使用预打包的启动脚本进行‘全新’安装的答案。

票数 1
EN

Stack Overflow用户

发布于 2012-10-18 06:14:24

除了AndrewPK的解释之外,我想要注意的是,您也可以以任何用户的身份启动新的PostgreSQL实例,方法是停止并禁用系统Pg服务,然后使用:

代码语言:javascript
复制
initdb -D /path/to/data/directory
pg_ctl start -D /path/to/data/directory

不过,这不会在引导时自动启动服务器。为此,您必须集成到init系统中。在CentOS 6上,在/etc/init.d/中添加一个简单的System V风格的初始化脚本和一个到/etc/rc3.d/或/etc/rc3.d/ (取决于默认运行级别)的适当符号链接就足够了。

如果同时运行多个实例,则它们必须位于不同的端口上。在数据目录中更改postgresql.conf中的port指令,或者在使用pg_ctl -o "-p 5433" ...启动时设置它。如果您的用户对缺省套接字目录没有写权限,则可能还需要覆盖unix_socket_directories

  • pg_ctl
  • initdb
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12940943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档