アレッ*_*ックス 2 linux postgresql ubuntu multiple-versions
我已经安装了两个版本的 postgresql,12并且13(在这个问题的早期版本中,这些是9.1和9.2,我将其更改为与更高版本中添加的输出详细信息一致)。
sudo service postgresql status
12/main (port 5432): down
13/main (port 5433): down
Run Code Online (Sandbox Code Playgroud)
它们位于/etc/postgresql/12/和/etc/postgresql/13/。
在版本上安装扩展后13:
sudo apt-get install postgresql-contrib postgresql-plpython3-13
Run Code Online (Sandbox Code Playgroud)
启动 postgresql 服务:
sudo service postgresql start
Run Code Online (Sandbox Code Playgroud)
输出:
* Starting PostgreSQL 12 database server
* Starting PostgreSQL 13 database server
Run Code Online (Sandbox Code Playgroud)
现在让我们在数据库中创建扩展,运行:
sudo su - postgres
Run Code Online (Sandbox Code Playgroud)
进而:
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
Run Code Online (Sandbox Code Playgroud)
12虽然我已经将 安装postgresql-python3u到 version 目录,但我们看到在 version 中搜索扩展13。
我只想使用版本13,我不需要两个不同的版本,而且 psql 似乎默认选择启动服务的最低可用 postgresql 版本,而不是我需要的最高版本。
如何12安全地删除 version或创建13唯一启动(或默认)服务,同时使用5432version的标准端口13?
当升级到提供较新 postgresql 版本的较新版本时,Ubuntu 中的两个集群可能会发生这种情况。
自动升级不会移除旧集群,大概是因为害怕删除有价值的数据(这是明智的,因为一些 postgres 升级可能需要人工完成)。
如果您知道要删除它,请运行:
sudo pg_dropcluster --stop 9.1 main
Run Code Online (Sandbox Code Playgroud)
相应的数据目录将被移除,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*'
| 归档时间: |
|
| 查看次数: |
1663 次 |
| 最近记录: |