将 PostgreSQL 完全重置为默认值?

Jas*_*nes 19 postgresql linux ubuntu bash centos

有没有办法在 Linux 上完全重置 PostgreSQL 安装,使其与我安装时的状态相同?

主意

我考虑过

rm -rf /var/lib/pgsql/*
rm -rf /var/lib/pgsql/backups/*
rm -rf /var/lib/pgsql/data/*
Run Code Online (Sandbox Code Playgroud)

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

目的

这对于摆脱以前使用过它的程序的遗留物会很方便。

Cra*_*ger 25

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

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

使用pg_wrapper. 请参阅PostgreSQL 的 Ubuntu 文档。你想要pg_dropcluster所有现有的 Pg 集群,然后pg_createcluster一个干净的新集群。

不要只是删除数据目录和重新initdb的。

CentOS/RH/Fedora,内置包

我没有安装这个,现在不能轻易测试。从内存中我认为停止服务器并删除数据目录是安全的。

CentOS/RH/Fedora、yum.postgresql.org 包

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

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

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

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

从源头

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

操作系统

家酿: brew uninstall postgresql; brew cleanup; brew install postgresql

Postgres.app?EDB 安装程序?麦克波特?

找一瓶啤酒。喝啤酒。重复。如果这不能使疼痛消失,请使用更强力的东西。

视窗

  • 停止服务
  • 删除数据目录
  • 使用runas.exepostgres 用户(9.2 之前)或NETWORKSERVICE(9.2+)重新运行 initdb 。或者只是在之后更改所有权。

  • 对于 OS X,brew 卸载和清理不会影响我的数据目录 /usr/local/var/postgresql@9.5。(它删除了 /usr/local/opt/postgresql@9.5 中的应用程序,注意“opt”而不是“var”)在重新安装之前需要“rm -rf /usr/local/var/postgresql@9.5”。 (2认同)

Jen*_*y D 6

应该这样做 - 只需首先确保当前配置确实将文件存储在这些目录中。

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

sudo -U pgsql initdb
Run Code Online (Sandbox Code Playgroud)


i-C*_*ICA 5

最好只是删除并重新安装吗?

这样您就可以获得最新版本并更新所有依赖项。

运行: sudo apt-get --purge 删除 postgresql

然后: sudo apt-get install postgresql

  • 这并没有删除现有的 DB + 用户(从 Postgres 9.5 开始) (2认同)