不知何故,我设法完全在 Ubuntu 业力上安装了 postgresql。我想从头开始,但是当我使用 apt-get “清除”软件包时,它仍然会留下痕迹,导致重新安装配置无法正常运行。
在我完成之后:
apt-get purge postgresql apt-get install postgresql
它说
Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) ... Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112) Error: move_conffile: required configuration file /var/lib/postgresql/8.4/main/postgresql.conf does not exist Error: could not create default cluster. Please create it manually with pg_createcluster 8.4 main --start or a similar command (see 'man pg_createcluster'). update-alternatives: using /usr/share/postgresql/8.4/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode. Setting up postgresql (8.4.3-0ubuntu9.10.1) ...
我有一个“/etc/postgresql”,里面什么都没有,“/etc/postgresql-common/”有一个 ‘pg_upgradecluser.d’ 目录和 root.crt 和 user_clusters 文件。
/etc/passwd 有一个 postgres 用户;清除脚本似乎没有触及它。有一堆症状,我只是为了暴露下一个症状。
就在这一秒,当我运行该命令“pg_createcluster …”时,它抱怨“/var/lib/postgresql/8.4/main/postgresql.conf 不存在”,所以我会去找其中一个,但我我确信这不会结束。
有没有一些简单的(或两个)可以完全烧掉它并让我重新开始的方法?
如果您的安装尚未损坏,您可以使用pg_dropcluster. 如果您只想使用新的 PostgreSQL 实例重新启动,请优先使用它而不是完全清除并重新安装。
pg_dropcluster
$ pg_lsclusters Ver Cluster Port Status Owner Data directory Log file 11 main 5432 online postgres /var/lib/postgresql/11/main /var/log/postgresql/postgresql-11-main.log $ sudo systemctl stop postgresql@11-main $ sudo pg_dropcluster --stop 11 main $ sudo pg_createcluster --start 11 main
如果你真的需要彻底清除并重新安装,首先确保 PostgreSQL 没有运行。ps -C postgres应该没有结果。
ps -C postgres
现在运行:
apt-get --purge remove postgresql\*
从您的系统中删除所有 PostgreSQL。仅仅清除postgres包是不够的,因为它只是一个空的元包。
postgres
删除所有 PostgreSQL 软件包后,运行:
rm -r /etc/postgresql/ rm -r /etc/postgresql-common/ rm -r /var/lib/postgresql/ userdel -r postgres groupdel postgres
您现在应该能够:
apt-get install postgresql
或完整安装:
apt-get install postgresql-8.4 postgresql-contrib-8.4 postgresql-doc-8.4