重置postgresql

我想把postgresql恢复到原来的空状态。

在Ubuntu上:

$ sudo service postgresql stop $ sudo apt-get purge postgresql* 

其次是

 $ sudo apt-get install postgresql 

我想要什么,但是有没有更残酷的做同样的事情?

我真正想要做的是检查我可以重新创build我的数据库从头开始。

使用initdb ,创build一个新的PostgreSQL数据库集群。 这也包括postgresql.conf和pg_hba.conf。

首先,我必须猜测你的意思是“重置”!

如果是数据,则可以使用已知的SQL语句drop database删除所有drop database

如果你的意思是configuration,我认为这是一个很好的方法,删除并重新安装一个新的configuration文件,除非你有一个旧的备份。

就像Khaled说的那样,你可以发出drop databasedrop user等语句来清理对初始数据库所做的所有更改。

对于数据库configuration,你可能会感兴趣的是把文件放在版本控制下(git,svn&co)。

对于Subversion,你可以这样做:

安装Subversion

 $ sudo apt-get install subversion 

设置存储库

 $ mkdir ~/pgsqlsvn $ svnadmin create 

停止服务

 $ sudo service postgresql stop 

最初填写存储库:

 $ cd /etc/postgresql $ sudo svn co file:///home/you/pgsqlsvn ./ $ sudo svn add * $ sudo svn commit 

之后恢复configuration

每次你需要重置到初始化数据库configuration,你可以

 $ sudo svn update /etc/postgresql -r 1 

为了扩展Frank的答案,我做了以下的事情来重置Ubuntu 14.04 LTS上的PostgreSQL:

 sudo service postgresql stop sudo bash # Root permissions to move the data folder mv /var/lib/postgresql/9.3/main ~ # Move the database for safety logout sudo -u postgres bash mkdir /var/lib/postgresql/9.3/main /usr/lib/postgresql/9.3/bin/initdb -D /var/lib/postgresql/9.3/main sudo service postgresql start 

请注意, initdb不在系统path中,如果你尝试运行它,Ubuntu会build议你需要安装一个扩展包。 但是,如果您安装了服务器本身,该命令仍然可用 – 只是隐藏。

我希望这可以修改为其他版本的PostgreSQL – 只需修改path中的版本号。

我可能已经缩短了这个过程,通过loginpostgres移动旧的数据库和创build一个新的。 请注意, initdb将拒绝以root身份运行,因此以postgres运行是有道理的。

(这种重置对于其他系统(如MySQL)来到这个数据库平台的人员非常有用,一旦你添加了angular色,用户,授权,默认权限等等,很难记住什么命令有什么作用。并尝试再次消除所有疑虑)。