如何在启动时显式启动一个版本的postgres?

时间:2018-04-18 08:28:38

标签: postgresql ubuntu-12.04

我管理一个旧的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 "$2" ]; then
    versions="$2 $3 $4 $5 $6 $7 $8 $9"
else
    get_versions
fi

看起来我只需要在命令行上传入该版本。

service postgresql start 9.6

是的......它奏效了。

所以我的问题是......如何在重启的情况下自动发生这种情况?

2 个答案:

答案 0 :(得分:0)

一种解决方案是删除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

答案 1 :(得分:0)

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

systemctl start postgresql@<version>-main

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

systemctl start postgresql@13-main

或使用服务命令

service postgresql@13-main start