如何在启动时明确启动一个版本的postgres?

How to explicitly start one version of postgres on startup?

我管理一个旧的 ubuntu 服务器 12.04,上面有 postgresql 9.1。

我为我们要使用的新应用程序成功安装了 postgresql 9.6。

我遇到的问题是出于某种原因

service postgresql start
* Starting PostgreSQL 9.1 database server                                                                                                       
[ OK ] 
* Starting PostgreSQL 9.6 database server 
[ OK ]

启动 9.1 服务器9.6 服务器。

我正在寻找一种仅在默认端口上启动 9.6 服务器的方法。

我看过 /etc/inid。d/postgresql。 这个摘录看起来可能是关键。

# versions can be specified explicitly
if [ -n "" ]; then
    versions="       "
else
    get_versions
fi

看来我只需要在命令行中传入版本即可。

service postgresql start 9.6

是的……它起作用了。

所以我的问题是...如何在重启时自动执行此操作?

一个解决方案是删除 9.1

apt-get --purge remove postgresql-9.1

并将 9.6 的配置文件中的端口更改为 5432

su postgres
psql

psql (10.3 (Ubuntu 10.3-1.pgdg14.04+1), server 9.6.8)
Type "help" for help.

postgres=# 
    SHOW config_file;
config_file                
------------------------------------------
/etc/postgresql/9.6/main/postgresql.conf
(1 row)
    \quit
exit
vi /etc/postgresql/9.6/main/postgresql.conf
    /port

将端口更改为 5432 并写入并关闭配置文件

    :wq

service postgresql stop
service postgresql start

如果您有多个 postgresql 实例,您可以通过以下命令只启动一个服务:

systemctl start postgresql@<version>-main

例如,我的电脑上安装了 11、12 和 13 版本。我只能通过以下方式启动版本 13:

systemctl start postgresql@13-main

或使用服务命令

service postgresql@13-main start