不知何故,我成功地在Ubuntu karmic上安装了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'目录和根目录.crt和user_群集文件.

/etc/passwd有一个postgres用户;清除脚本似乎没有触及它.我经历了一系列的症状,只是为了expose 下一个症状.

就在这一秒,当我运行命令"pg_createcluster…"它抱怨"/var/lib/postgresql/8.4/main/postgresql".conf不存在,所以我会go 找其中的一个,但我确信它不会结束.

难道没有简单的一层(或两层)可以完全烧掉它,让我重新开始吗?

推荐答案

Option A

如果您的安装尚未损坏,您可以使用pg_dropcluster删除不需要的PostgreSQL服务器("群集").如果您只想用新的PostgreSQL实例重新启动,请优先使用该选项,而不是完全清除并重新安装.

$ 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

Option B

如果您真的需要进行完全清除并重新安装,请首先确保PostgreSQL没有运行.ps -C postgres应该没有结果.

现在运行:

apt-get --purge remove postgresql\*

从系统中删除所有PostgreSQL.仅仅清除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

Postgresql相关问答推荐

Qt,PostgreSQL -从NUERIC列检索max int64_t/uint64_t值

PostgreSQL中btree_gist索引涉及integer和tstzrange属性查询计划的问题

在Docker Compose中获取CSV文件数据?

PostgreSQL无效语法

Postgres如何插入带有十进制逗号的实数?

select语句的Jooq代码生成

让Docker Compose Container等待容器PostgreSQL并恢复

在 Windows 上使用 rsync 进行 Postgresql 副本升级

对表执行 DISABLE TRIGGER ALL 是否也会禁用 FK 指向该表?

Postgres 查询指向国外数据工作者的分区表比直接查询 fdw 慢很多倍

PostgreSQL bytea 网络流量双倍预期值

如何从元组列表中 Select 与多列匹配的行?

Windows PSQL 命令行: is there a way to allow for passwordless login?

SQLAlchemy、Psycopg2 和 Postgresql 复制

plpgsql:使用 2 个 OUT 参数调用函数

NOT LIKE 带有 NULL 值的行为

将数据推送到 Heroku 时出错:time zone displacement out of range

如何将 PostgreSQL 查询输出导出到 csv 文件

Ecto Postgres 安装错误密码验证失败

调用 getNextException 来查看原因:如何让 Hibernate / JPA 显示异常的数据库服务器消息