我的系统(Ubuntu Lucid)上安装了 2 个不同版本的 PostgreSQL:
- /var/lib/postgresql/8.4
- /var/lib/postgresql/9.0
默认情况下,当我运行诸如 createdb 或 psql 之类的 PostgreSQL 命令时,使用的是 9.0 版本。
如何将我的系统配置为默认使用 8.4 版本?
我的系统(Ubuntu Lucid)上安装了 2 个不同版本的 PostgreSQL:
默认情况下,当我运行诸如 createdb 或 psql 之类的 PostgreSQL 命令时,使用的是 9.0 版本。
如何将我的系统配置为默认使用 8.4 版本?
默认情况下,各种 PostgreSQL 命令行工具将与侦听默认端口 (5432) 的服务器通信。
您可以通过在文件中查找相关服务器的
port
变量来确定每个服务器正在侦听的端口。/etc/postgresql/$VERSION/main/postgresql.conf
要让命令行工具默认与其他服务器通信,您有两种选择:
首先,您可以通过编辑前面提到的配置文件然后重新启动两台服务器来切换两台服务器正在侦听的端口(您可能希望在启动之前停止每台服务器)。
或者,您可以将
PGPORT
环境变量设置为所需默认服务器的端口号。这应该会影响所有使用 PostgreSQL 客户端库的应用程序。要列出每个数据库集群的内容,请使用
psql -l -p PORT_NUMBER
. 要迁移数据,请参阅PostgreSQL 文档中的“ 24.4. 版本间迁移”部分。通过减少磁盘写入,删除旧版本的 PostgreSQL 可以减少笔记本电脑和 SSD 的磨损。
如果您想摆脱一个版本,使另一个版本成为默认版本...
正如 James/Bryce 正确指出的那样,这两个版本将在不同的端口上运行。
但是,命令行实用程序也将作为一个版本或另一个版本运行。例如,
pg_dump --version
可能会给您带来意想不到的结果。您可以在一个名为
~/.postgresqlrc
首先,您需要知道集群名称,要找到它,请运行以下命令:
这将输出可用的集群,例如在我运行 9.6 和 13 的系统上:
然后创建文件
~/.postgresqlrc
并放入以下内容来控制使用的默认版本:更改
13
为您要默认运行的版本,在这个问题的情况下,将是8.4
或9.0
。