![丢失 PostgreSQL 超级用户用户名和密码](https://linux22.com/image/561032/%E4%B8%A2%E5%A4%B1%20PostgreSQL%20%E8%B6%85%E7%BA%A7%E7%94%A8%E6%88%B7%E7%94%A8%E6%88%B7%E5%90%8D%E5%92%8C%E5%AF%86%E7%A0%81.png)
我有一个在 Windows 上运行的 PostgreSQL 8.4 数据库,但我丢失了超级用户用户名,因此无法连接。
我已经配置pg_hba.conf
为trust
允许无需密码的连接,但我仍然需要知道有效用户的名称才能登录。
我试过了PostgreSQL 的,行政等等,但我总是得到:
psql: FATAL: role "USERNAME" does not exist
答案1
您可以尝试在单用户模式下运行 PostgreSQL。在我的系统 (Linux) 上,我能够使用以下命令获取超级用户 sql shell sudo -u postgres postgres90 --single postgres -D /var/lib/postgresql/9.0/data/
:。
sudo -u postgres
这里是删除特权(postgres拒绝在特权账户下运行`,其他参数应该很容易理解。
在单用户 shell 中,你应该能够创建新用户或SELECT * FROM pg_user;