将 PostgreSQL 完全重置为默认值?

将 PostgreSQL 完全重置为默认值?

问题

有没有办法完全重置 Linux 上的 PostgreSQL 安装,以便它处于与我安装时相同的状态?

主意

我已经考虑过了

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*

但这也许不是一个推荐的方法。

目的

这对于清除以前使用过的程序留下的残留物非常方便。

答案1

这样就可以了——首先确保当前配置确实将文件存储在这些目录中。

完成后,重新启动数据库:

sudo -U pgsql initdb

答案2

这一切都取决于它是如何安装的。

Ubuntu,来自软件包(内置或 apt.postgresql.org)

使用pg_wrapper。请参阅Ubuntu 的 PostgreSQL 文档。您需要删除pg_dropcluster所有现有的 Pg 集群,然后创建pg_createcluster一个新的干净集群。

不是只需删除数据目录并重新初始化数据库。

CentOS/RH/Fedora,内置软件包

我没有安装这个,现在无法轻松测试。根据记忆,我认为只需停止服务器并删除数据目录即可。

CentOS/RH/Fedora,yum.postgresql.org 软件包

/usr/share/doc/postgresql??-?.?.?/README.rpm-dist

systemctl使用或包装器命令停止服务器service,删除数据目录,然后运行/usr/pgsql-9.3/bin/postgresql93-setup initdb(根据您的版本调整路径)。

任何发行版,来自 EDB 安装程序

停止服务器,删除数据目录和initdb新集群。请参阅安装程序文档。

从源头

停止服务器,删除数据目录,重新初始化数据库。

操作系统

自制:brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app?EDB 安装程序?MacPorts?

找一瓶啤酒。喝下它。重复。如果这不能减轻疼痛,那就喝点更烈的酒。

视窗

  • 停止服务
  • 删除数据目录
  • runas.exe以 postgres 用户身份(9.2 之前)或(9.2 以上)重新运行 initdb NETWORKSERVICE。或者之后更改所有权。

答案3

最好的办法不是删除并重新安装吗?

这样,您将获得最新版本并更新所有依赖项。

运行:sudo apt-get --purge remove postgresql

然后:sudo apt-get install postgresql

相关内容