当前位置: 首页>>技术教程>>正文


在同一Ubuntu服务器上运行多个版本的PostgreSQL

,

问题描述

我在同一台服务器(Ubuntu Lucid)上运行PostgreSQL 8.4和9.0。

我通过apt-get(8.4用默认软件包源,以及从https://launchpad.net/~pitti/+archive/postgresql添加ppa后的9.0)安装了它们。

当我从命令行运行类似”createdb”的命令或启动”psql” shell时,系统上默认使用PostgreSQL 8.4版。

那么,如何强制这些命令使用PostgreSQL 9.0而不是8.4?

最佳方法

假设Ubuntu与Debian做相同的事情,那么您的两个PostGreSQL实例将在不同的端口上运行。

您可以轻松地检查配置文件以查看哪个版本在哪个端口上:

$ grep -H '^port' /etc/postgresql/*/main/postgresql.conf
/etc/postgresql/8.4/main/postgresql.conf:port = 5432
/etc/postgresql/8.3/main/postgresql.conf:port = 5433

大多数PostGreSQL命令采用“ -p ####”或”–port=####”选项,因此您可以使用它来选择所需的版本。

次佳方法

使用--cluster选项,例如(假设两个集群都被命名为默认主集群):

psql --cluster 8.4/main
psql --cluster 9.0/main

通用模式为:

--cluster version/name      # for local connections
--cluster version/host:port # for TCP/IP connections

要列出所有已安装的群集(名称,端口,状态,数据目录等),请使用pg_lsclusters命令。

有关更多信息,请检查man pg_wrapper

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11080.html,未经允许,请勿转载。