Я либо забыл, либо набрал (во время установки) пароль для пользователя по умолчанию в Postgres. Кажется, я не могу его запустить и получаю следующую ошибку:
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
Есть ли способ сбросить пароль или как создать нового пользователя с привилегиями суперпользователя?
Я новичок в Postgres и только что установил его впервые. Я пытаюсь использовать его с Rails, и я использую Mac OS X Lion.
Ответы:
найти файл
pg_hba.conf
- он может быть расположен, например, в/etc/postgresql-9.1/pg_hba.conf
.cd /etc/postgresql-9.1/
Поддержите это
cp pg_hba.conf pg_hba.conf-backup
поместите следующую строку (в качестве первой строки без комментариев или в качестве единственной):
перезапустите сервер PostgreSQL (например, в Linux :)
sudo /etc/init.d/postgresql restart
Если служба (демон) не запускает отчеты в файле журнала:
ты должен измениться
local all all trust
в
host all all 127.0.0.1/32 trust
Теперь вы можете подключиться как любой пользователь. Подключитесь как суперпользователь
postgres
(обратите внимание, что имя суперпользователя может отличаться в вашей установке.pgsql
Например, в некоторых системах оно называется . )psql -U postgres
или
psql -h 127.0.0.1 -U postgres
(обратите внимание, что с первой командой вы не всегда будете связаны с локальным хостом)
Сбросить пароль ('замените my_user_name на postgres, так как вы сбрасываете пользователя postgres )
ALTER USER my_user_name with password 'my_secure_password';
Восстановите старое, так
pg_hba.conf
как держать его очень опасноcp pg_hba.conf-backup pg_hba.conf
перезагрузите сервер, чтобы запустить с сейфом
pg_hba.conf
sudo /etc/init.d/postgresql restart
Дополнительная информация об этом файле pg_hba: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html.
источник
psql
? Мне все еще предлагаютПри подключении к postgres из командной строки не забудьте добавить в
-h localhost
качестве параметра командной строки. Если нет, postgres попытается подключиться в режиме аутентификации PEER.Ниже показаны сброс пароля, неудачный вход в систему с аутентификацией PEER и успешный вход в систему с использованием TCP-соединения.
В противном случае:
Работа с
-h localhost
:источник
pg_hba.conf
(C:\Program Files\PostgreSQL\9.3\data
Файл) изменился с тех пор эти ответы были даны. То , что работало для меня, в Windows, чтобы открыть файл и изменитьMETHOD
отmd5
доtrust
:Затем, используя pgAdmin III, я вошел в систему без пароля и изменил
postgres'
пароль пользователя , перейдя вFile -> Change Password
источник
trust
вы можете следовать этому и изменить пароль в cmdПросто примечание, в Linux Вы можете просто запустить,
sudo su - postgres
чтобы стать пользователем postgres, и оттуда изменить то, что требуется с помощью psql.источник
Отредактируйте файл
/etc/postgresql/<version>/main/pg_hba.conf
и найдите следующую строку:Отредактируйте строку и
md5
в конце измените наtrust
и сохраните файлПерезагрузите сервис postgresql
Это загрузит файлы конфигурации. Теперь вы можете изменить
postgres
пользователя, войдя вpsql
оболочкуОбновите
postgres
пароль пользователяОтредактируйте файл
/etc/postgresql/<version>/main/pg_hba.conf
иtrust
вернитесь обратноmd5
и сохраните файлПерезагрузите сервис postgresql
Убедитесь, что смена пароля работает
источник
У меня просто была эта проблема в Windows 10, и проблема в моем случае заключалась в том, что я просто работал,
psql
и по умолчанию он пытался войти в систему с моим именем пользователя Windows («Натан»), но не было пользователя PostgreSQL с таким именем, и это не говорило мне об этом.Таким образом, решение состояло в том, чтобы запустить,
psql -U postgres
а не простоpsql
, и тогда пароль, который я ввел при установке, работал.источник
Добавление ответа для пользователя Windows для последней версии postgres (> 10),
Перейдите к месту установки postgres и выполните поиск
pg_hba.conf
, вы найдете его в..\postgres\data\pg_hba.conf
Откройте этот файл с помощью блокнота, найдите эту строку,
Измените метод с md5 на доверие,
Теперь перейдите в SQL Shell (PSQL) и оставьте все пустым,
На этот раз он не будет запрашивать пароль, и вы войдете в систему,
Теперь запустите эту строку,
ALTER USER yourusername WITH SUPERUSER
Теперь вы можете покинуть оболочку с помощью \ q
Снова перейдите в файл pg_hba.conf, снова измените МЕТОД с доверия на md5 и сохраните его.
Теперь войдите под своим новым пользователем и паролем, и вы можете проверить \ du для его атрибутов.
источник
Для установки Windows создается пользователь Windows. И «psql» использует этого пользователя для подключения к порту. Если вы измените пароль пользователя PostgreSQL, он не изменит пароль Windows. Командная строка juste ниже работает, только если у вас есть доступ к командной строке.
Вместо этого вы можете использовать приложение Windows GUI "c: \ Windows \ system32 \ lusrmgr.exe". Это приложение для управления пользователями, созданными Windows. Теперь вы можете изменить пароль.
источник
Что я сделал, чтобы решить ту же проблему:
Откройте файл pg_hba.conf с помощью редактора gedit из терминала:
Он попросит пароль. Введите пароль для входа администратора. Это откроет Gedit с файлом. Вставьте следующую строку:
ниже -
Сохраните и закройте его. Закройте терминал, снова откройте его и выполните команду:
Теперь вы войдете в консоль psql. Теперь измените пароль, введя это:
Если он говорит, что пользователь не существует, то вместо
ALTER
использованияCREATE
.Наконец, удалите эту строку, вставленную в pg_hba, и сохраните ее.
источник
Если вы находитесь в Windows, вы можете просто запустить
и войдите в postgres с помощью postgres / postgres в качестве пользователя / пароля
источник
Файл .pgpass в домашнем каталоге пользователя или файл, на который ссылается PGPASSFILE, может содержать пароли, которые должны использоваться, если для соединения требуется пароль (и в противном случае пароль не был указан). В Microsoft Windows файл называется% APPDATA% \ postgresql \ pgpass.conf (где% APPDATA% относится к подкаталогу Application Data в профиле пользователя).
Этот файл должен содержать строки следующего формата:
Имя хоста: порт: база данных: имя пользователя: пароль
(Вы можете добавить комментарий напоминания в файл, скопировав строку выше и поставив перед ней знак #.) Каждое из первых четырех полей может быть буквальным значением или *, что соответствует чему угодно. Будет использовано поле пароля из первой строки, соответствующее текущим параметрам соединения. (Поэтому при использовании подстановочных знаков ставьте сначала более конкретные записи.) Если запись должна содержать: или \, экранируйте этот символ с помощью. Имя хоста localhost совпадает с соединениями TCP (имя хоста localhost) и сокета домена Unix (pghost empty или каталог сокета по умолчанию), поступающими с локального компьютера. На резервном сервере имя базы данных репликации соответствует подключению потоковой репликации к главному серверу. Поле базы данных имеет ограниченную полезность, поскольку пользователи имеют одинаковый пароль для всех баз данных в одном кластере.
В системах Unix разрешения на .pgpass должны запрещать любой доступ к миру или группе; достигните этого командой chmod 0600 ~ / .pgpass. Если разрешения менее строгие, чем этот, файл будет игнорироваться. В Microsoft Windows предполагается, что файл хранится в безопасном каталоге, поэтому никаких специальных проверок разрешений не производится.
источник
Если вы работаете в PostgreSQL на Mac OS, попробуйте это :
Отредактируйте файл pg_hba.conf
sudo vi /Library/PostgreSQL/9.2/data/pg_hba.conf
Измените метод «md5» для всех пользователей на «доверие» внизу файла
Найти название сервиса
ls / Библиотека / LaunchDaemons
Ищите postgresql
Остановите службу postgresql
sudo launchctl stop com.edb.launchd.postgresql-9.2
Запустите сервис postgresql
sudo launchctl start com.edb.launchd.postgresql-9.2
Начать psql сессию как postgres
psql -U postgres
(не следует запрашивать пароль из-за настройки доверия)
Сбросить пароль в сессии psql, набрав
ALTER USER postgres с паролем 'secure-new-password';
войти
Отредактируйте файл pg_hba.conf
Переключите его обратно на «md5»
Перезапустите сервисы снова
источник
Вот что у меня сработало на windows:
Отредактируйте файл pg_hba.conf, расположенный в C: \ Program Files \ PostgreSQL \ 9.3 \ data.
# IPv4 local connections: host all all 127.0.0.1/32 trust
Измените метод с доверия на md5 и перезапустите службу postgres в Windows.
После этого вы можете войти, используя postgres, без пароля, используя pgadmin. Вы можете изменить пароль, используя File-> Change password.
Если пользователь postgres не имеет привилегий суперпользователя, вы не можете изменить пароль. В этом случае войдите в систему с другим пользователем (pgsql) с правами суперпользователя и предоставьте привилегии другим пользователям, щелкнув правой кнопкой мыши по пользователям и выбрав Свойства-> Ролевые привилегии.
источник