我已经弄乱了 template1 数据库,并且想将所有内容重置为原样。
因此我做了sudo apt-get purge postgresql
但是下次我重新安装时,数据库仍然存在。为什么?什么都没有重置。
答案1
当您创建数据库时,会创建该数据库的数据文件。这些文件(当然)不会被 apt purge 清除。
如果/etc/postgresql/8.4/main/postgresql.conf
(可能不是8.4
- 使用你的版本)仍然存在,你可以找到类似
data_directory = '/var/lib/postgresql/8.4/main' # 使用另一个目录中的数据
您可以在此处找到您创建的数据库的数据文件。如果您创建了自己的数据目录,我相信您会记得它们在哪里。
用户postgresql
还存在吗?这是数据库文件的所有者。删除此用户并搜索其所有文件(使用类似 之类的东西deluser --remove-all-files
,man deluser
会有所帮助)。如果此用户不存在,find
则删除文件系统中所有没有关联用户的文件。(使用find / -nouser -nogroup
- 并再次阅读man find
:-) )
如需了解更多信息,请咨询精彩的 postgresql 文档。
答案2
您不需要为此删除并重新安装 PostgreSQL。
sudo -u postgres psql postgres
drop database template1;
create database template1 template template0;