我有一个运行在Windows上的PostgreSQL 8.4数据库,但是我失去了超级用户名的名字,所以无法连接。
我已经configuration了pg_hba.conf来使用trust来允许没有密码的连接,但是我仍然需要知道要login的有效用户的名字。
我试过postgres , pipe理员等,但我总是得到:
psql: FATAL: role "USERNAME" does not exist
你可以尝试在单用户模式下运行PostgreSQL。 在我的系统(Linux)上,我可以用以下命令获得超级用户sql shell: sudo -u postgres postgres90 --single postgres -D /var/lib/postgresql/9.0/data/ 。
sudo -u postgres在这里是放弃priveledges(postgres拒绝运行priveledged帐户,其他参数应该很容易理解。
在单用户shell中,您应该能够创build新用户或SELECT * FROM pg_user;