误删PostgreSQL服务器默认postgres数据库后无法运行psql,如何恢复正常?
恢复被删除的PostgreSQL默认postgres数据库
别慌,这个问题我帮不少开发者解决过,操作起来其实很 straightforward,咱们一步步来搞定:
首先,绕开默认数据库的连接限制,通过系统自带的模板数据库登录PostgreSQL。在终端里执行这条命令:
sudo -u postgres psql -d template1
解释下:template1是PostgreSQL原生自带的模板库,肯定没被你删掉,用它建立连接是最稳妥的。要是你用的是Windows系统,直接打开管理员命令提示符,运行psql -U postgres -d template1就行。成功进入psql交互界面后,执行SQL语句重建postgres数据库:
CREATE DATABASE postgres;
这个默认数据库本质上就是个普通的系统级数据库,只是psql默认会优先连接它,所以咱们把它补回来就好。保险起见,确认下数据库所有权属于postgres用户(避免后续出现权限报错),执行:
ALTER DATABASE postgres OWNER TO postgres;最后输入
\q退出psql,现在再试试直接运行psql或者sudo -u postgres psql,应该就能正常连接使用了。
要是执行时遇到服务未启动的问题,先把PostgreSQL服务拉起来:
- 对于Linux systemd系统:
sudo systemctl start postgresql - 对于Windows:在系统服务列表里找到PostgreSQL服务,右键启动即可
内容的提问来源于stack exchange,提问作者molereddy
相关产品推荐
相关产品推荐

