通过YUM Repo作为默认守护程序用户安装时,如何在CentOS上运行Postgres



,具有新刚安装的Postgres 9.2的版本,通过Centos 6上的YUM存储库,当将其配置为" Postgres:Postgres:u:u:g)开箱即用?

除了Andrewpk的解释外,我想指出,您还可以通过停止和禁用系统PG服务,然后使用:

来启动新的PostgreSQL实例为任何用户
initdb -D /path/to/data/directory
pg_ctl start -D /path/to/data/directory

不过,这不会在启动时自动启动服务器。为此,您必须集成到您的初始系统中。在CENTOS 6上,/etc/init.d/中的一个简单系统V-Style INIT脚本,并在/etc/rc3.d/或/etc.ch.d/or/etcc/rc3.d/(取决于默认的Runlevel)中,就足够了。p>如果一次运行多个实例,则必须在不同的端口上。更改Datadir中postgresql.conf中的port指令,或使用pg_ctl -o "-p 5433" ...在启动上设置它。如果您的用户没有对默认套接字目录的写入权限,则可能需要覆盖unix_socket_directories

  • pg_ctl
  • initdb

这仅用于新的安装(与我的情况有关),因为它涉及吹走数据。

我在利用包装的启动脚本进行新安装时采取的步骤解决此问题:

  1. 删除Postgres数据DIR /var/lib/pgsql/9.2/data如果您已经使用Postgres用户完成了INITDB进程:组合为默认值。
  2. 修改启动脚本(/etc/init.d/postgresql-9.2)将postgres:postgres的所有实例替换为NEWUSER:NEWGROUP
  3. 修改启动脚本以用NEWUSER中的任何CC_11中的postgres的所有实例。
  4. 运行/etc/init.d/postgres initdb使用新用户名
  5. 重新生成群集
  6. 确保创建的任何日志均由新用户拥有或删除旧日志,如果INITDB上的错误(我的情况中的配置文件是在/var/lib/pgsql/9.2/data/postgresql.conf中找到的)。
  7. 启动Postgres,现在应该在新的用户/组下运行。

我知道,如果其他人有现有的Postgres DB,并且想重新启动服务器以作为其他用户/组组合运行 - 这不是我的情况,这不是我的情况,我没有看到一个,我看不到回答在任何地方使用预包装的启动脚本的"新鲜"安装。

最新更新