在Centos 6上通过yum存储库安装了新版本的Postgres 9.2,如果将postgres配置为以'postgres:postgres'(u:g)开箱即用,如何以不同的用户身份运行?< / p>
答案 0 :(得分:4)
除了AndrewPK的解释之外,我还要注意你也可以通过停止和禁用系统Pg服务来启动新的PostgreSQL实例,然后使用:
initdb -D /path/to/data/directory
pg_ctl start -D /path/to/data/directory
但是,这不会在启动时自动启动服务器。为此,您必须集成到您的init系统中。在CentOS 6上,/etc/init.d/中的一个简单的System V风格的init脚本和一个合适的符号链接到/etc/rc3.d/或/etc/rc3.d/(取决于默认的运行级别)就足够了。
如果一次运行多个实例,则它们必须位于不同的端口上。更改数据库中port
中的postgresql.conf
指令,或者使用pg_ctl -o "-p 5433" ...
在启动时进行设置。如果您的用户没有对默认套接字目录的写入权限,您可能还需要覆盖unix_socket_directories
。
答案 1 :(得分:1)
这仅适用于全新安装(因为它与我的情况有关),因为它涉及吹走数据目录。
我在使用打包的启动脚本进行全新安装时解决此问题的步骤:
/var/lib/pgsql/9.2/data
。/etc/init.d/postgresql-9.2
),将postgres:postgres
的所有实例替换为NEWUSER:NEWGROUP
。postgres
替换$SU -l postgres
行中NEWUSER
的所有实例。/etc/init.d/postgres initdb
以重新生成群集
/var/lib/pgsql/9.2/data/postgresql.conf
中找到),则删除旧日志。我理解这可能不是其他人想要的,如果他们有现有的postgres数据库并且想要重新启动服务器以作为不同的用户/组组合运行 - 这不是我的情况,我没有看到使用预先打包的启动脚本在任何地方发布“新鲜”安装的答案。