linux - 安装的 postgresql 版本过多 : How to start only a chosen postgresql version or remove the unneeded ones? 需要的端口是标准端口 "5432"

标签 linux postgresql ubuntu multiple-versions

<分区>

有很多启动的postgresql服务,psql选择最低的postgresql版本

我已经安装了两个版本的 postgresql,1213(在这个问题的早期版本中,它们是 9.19.2,我将其更改为与更高版本添加的输出细节一致。

sudo service postgresql status
12/main (port 5432): down
13/main (port 5433): down

它们位于 /etc/postgresql/12//etc/postgresql/13/

在版本 13 上安装扩展后:

sudo apt-get install postgresql-contrib postgresql-plpython3-13

启动postgresql服务:

sudo service postgresql start

哪些输出:

 * Starting PostgreSQL 12 database server                                                                                                                                                                                             
 * Starting PostgreSQL 13 database server

现在让我们在数据库中创建扩展,运行:

sudo su - postgres

然后:

postgres=# psql
psql (13.4 (Ubuntu 13.4-1.pgdg20.04+1), server 12.7 (Ubuntu 12.7-0ubuntu0.20.04.1))
Type "help" for help.

postgres=# CREATE EXTENSION plpython3u;
ERROR:  could not open extension control file "/usr/share/postgresql/12/extension/plpython3u.control": No such file or directory

虽然我已经将 postgresql-python3u 安装到版本 13 的目录中,但我们看到在版本 12 中搜索了扩展。

目标

我只想使用版本 13,我不需要两个不同的版本,psql 似乎默认选择启动服务的最低可用 postgresql 版本,而不是我需要的最高版本.

如何安全地删除版本 12 或使 13 成为唯一启动(或默认)的服务,同时使用标准端口 5432版本 13?

最佳答案

当升级到提供更新的 postgresql 版本的更新版本时,可能会在 Ubuntu 中出现这种情况。

自动升级不会删除旧的集群,大概是因为害怕删除有值(value)的数据(这是明智的,因为一些 postgres 升级可能需要人工完成)。

如果您知道要删除它,只需运行:

sudo pg_dropcluster --stop 9.1 main 

相应的数据目录将被移除,service postgresql将不再引用9.1

此时9.2集群仍会使用5433端口,这是不切实际的。

要将其切换到默认端口,请编辑 /etc/postgresql/9.2/main/postgresql.conf 并将行 port = 5433 更改为 port = 5432

然后重启 PostgreSQL。

最后要摆脱 postgresql-9.1 包,查看 dpkg -l 'postgresql*9.1*'

的结果

关于linux - 安装的 postgresql 版本过多 : How to start only a chosen postgresql version or remove the unneeded ones? 需要的端口是标准端口 "5432",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629561/

相关文章:

linux - 在 Linux 中制作 USB 视频

linux - 使用 waitid 系统调用在汇编中等待克隆的 child

linux - 如何在 Cygwin 上不运行 "myfile.exe"的情况下将 "Startxwin"作为独立的可执行文件运行?

mysql - 使用 SQL,设计行为类似于其他表接口(interface)的表的最佳实践是什么?

postgresql - 在 Postgresql 9.1 中将古代数据从一个数据库表归档到另一个数据库表?

linux - 使用 sed 查找和替换带有 2 个分隔符的字符的好方法

ruby-on-rails - 您持有破损的包裹 - 用于 Rails 的 Postgres gem

Linux:使用精确的子字符串重命名文件

ubuntu - Ubuntu 17.04 的 Pin 工具段错误

sql - PostgreSQL 查询无匹配条件