如何配置 postgres 仅运行一个版本

问题描述 投票:0回答:2

我对使用 postgresql 还很陌生,并且似乎安装了两个同时运行的版本。 12 和 14 都可以。

下面是我运行的命令列表以及它们产生的结果。

来自 WSL-2 Ubuntu 20.04 CLI

➜ which psql

/usr/bin/psql

➜ pg_config --version

PostgreSQL 14.4 (Ubuntu 14.4-1.pgdg20.04+1)

➜ psql --version

psql (PostgreSQL) 14.4 (Ubuntu 14.4-1.pgdg20.04+1)

来自psql

=# SHOW server_version;

           server_version
------------------------------------
 12.11 (Ubuntu 12.11-1.pgdg20.04+1)
(1 row)

=# SELECT version();

                                                               version
-------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 12.11 (Ubuntu 12.11-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 64-bit
(1 row)

我的 odoo 15 db 一直存在一些问题,我认为这可能是原因,但我不确定。

任何有关如何从 12.11 服务器过渡到 14.4 服务器并删除 12.11 服务器的建议将不胜感激。

linux postgresql command-line-interface psql ubuntu-20.04
2个回答
2
投票

感谢以上各位的帮助!

我在 Ubuntu 20.04 / Windows-11 WSL-2 上运行修复的命令:

  1. $ ~
    pg_dumpall > export.sql
  2. $ ~
    sudo apt-get --purge remove postgresql\*
  3. $ ~
    sudo apt-get install postgresql-14
    (或-版本首选)
  4. $ ~
    sudo -u postgres -i
  5. postgres ~ $
    psql
  6. #=
    CREATE ROLE username superuser
  7. #=
    ALTER ROLE username WITH LOGIN;
  8. #=
    \password username;
  9. #=
    \q
  10. postgres ~ $
    exit

0
投票

在一次重大的 Ubuntu 升级之后,我还获得了两台具有不同版本的 Postgres 服务器。事实证明,有一个不太激进的方法可以摆脱旧版本:

  1. 备份所有数据库:
    pg_dumpall -h localhost -U postgres -W > all_pg.sql
    。这将询问
    postgres
    用户密码,次数与集群中的数据库数量相同。
  2. 停止并删除 new(版本 14)数据库集群:
    sudo pg_dropcluster --stop 14 main
  3. (版本12)集群升级到版本14:
    sudo pg_upgradecluster 12 main
  4. 删除old(版本12)集群:
    sudo pg_dropcluster 12 main
  5. 删除版本12软件包:
    sudo apt-get purge postgresql-12 postgresql-client-12

总而言之,无需

sudo apt purge
所有 Postgres 软件包,然后重新安装最新的软件包。

© www.soinside.com 2019 - 2024. All rights reserved.