У меня есть база данных PostgreSQL 8.4, работающая в Windows, но я потерял имя суперпользователя, поэтому не могу подключиться.
Я уже настроил pg_hba.conf
использовать trust
чтобы разрешить соединения без пароля, но мне все равно нужно знать имя действующего пользователя для входа в систему.
я пробовал Postgres, админ и т.д., но я всегда получаю:
psql: FATAL: role "USERNAME" does not exist
Вы можете попробовать запустить PostgreSQL в однопользовательском режиме. В моей системе (Linux) мне удалось получить оболочку sql суперпользователя с помощью следующей команды: sudo -u postgres postgres90 --single postgres -D /var/lib/postgresql/9.0/data/
.
sudo -u postgres
здесь следует отказаться от привилегий (postgres отказывается запускаться под привилегированной учетной записью, другие параметры должны быть легко понятны.
В однопользовательской оболочке вы должны иметь возможность создать нового пользователя или SELECT * FROM pg_user;