我有 Debian 8.2 x64 和 Postgresql 9.4(来自 repo)。我已在不同位置重新创建了默认集群,如下所示:
# service postgresql stop
# pg_dropcluster 9.4 main
# pg_createcluster -d /srv/postgresql/data/9.4/main 9.4 main -- -W -A md5
# service postgresql start
然后我可以使用以下命令连接到数据库:
# psql -WU postgres
然后我创建了另一个集群:
# pg_createcluster -d /srv/postgresql/data/9.4/apps -p 5433 9.4 apps -- -W -A md5
我可以用以下方式开始:
# pg_ctlcluster 9.4 apps start
并连接:
# psql -WU postgres -p 5433
但 init 脚本只启动main
集群,忽略集群apps
,根据手册页,如果/etc/postgresql/9.4/apps/start.conf
不存在集群,则假定自动启动集群。但这是我的/etc/postgresql/9.4/apps/start.conf
# Automatic startup configuration
# auto: automatically start/stop the cluster in the init script
# manual: do not start/stop in init scripts, but allow manual startup with
# pg_ctlcluster
# disabled: do not allow manual startup with pg_ctlcluster (this can be easily
# circumvented and is only meant to be a small protection for
# accidents).
auto
所以它也应该启动apps
集群或者我误解了什么或者应该设置其他一些选项?
更新
好吧,我认为我已经解决了我的问题:
# apt-get install --reinstall postgresql-common
此后,所有集群都由 init 脚本控制,并且:
# service postgresql start|stop|restart
或者
systemctl start postgresql.service
影响所有集群。这很奇怪,因为第一次安装和重新安装都没有报告任何错误。