问题
有没有办法完全重置 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 以上)重新运行 initdbNETWORKSERVICE
。或者之后更改所有权。
答案3
最好的办法不是删除并重新安装吗?
这样,您将获得最新版本并更新所有依赖项。
运行:sudo apt-get --purge remove postgresql
然后:sudo apt-get install postgresql