Я думаю, что я не могу заблокировать мою учетную запись Postgres PSQL
Когда я настраивал postgresql в linux, я следовал учебнику, который, как мне кажется, заставил меня изменить пароль учетной записи postgres, и я не знал ничего лучшего. Пожалуйста, прости мое невежество.
Когда я набираю "psql postgres", он запрашивает пароль, и работает только один пароль. Я попытался следовать предыдущим ответам, реализовав "sudo passwd --lock postgres" и "sudo -u postgres psql postgres" с помощью "\password postgres" и установив новый пароль (который не работает).
Я боюсь редактировать /etc/passwd и ставить * вместо пароля, потому что в этом комментарии очень мало голосов, и я не знаю, что он на самом деле будет делать.
Все, что я пытаюсь (даже изменяя md5 на доверие к pg_hba.conf), после того, как я ввожу "sudo /etc/init.d/postgresql restart", psql postgres ВСЕ ТРЕБУЕТ пароль, и он принимает только один работающий пароль. Все остальное возвращает "psql: FATAL: сбой аутентификации по паролю".
Что я могу сделать?
1 ответ
Метод аутентификации "peer"
Если ваш метод аутентификации peer
лайк
local all postgres peer
и / или
local all all peer
в pg_hba.conf
, затем подключитесь как пользователь linux postgres
в базу данных.
sudo -u postgres psql
Вам не понадобится пароль, даже если он установлен.
Замечания: psql -U postgres postgres
работать как другой пользователь Linux, как postgres
не работает в этом случае и не работает с psql: FATAL: Peer authentication failed for user "postgres"
,
Метод аутентификации "md5"
Если ваш метод аутентификации md5
, тогда вам понадобится правильный пароль для подключения.
Сброс пароля
Прокомментируйте все существующие строки, начинающиеся с "local" в
pg_hba.conf
и добавить строкуlocal all postgres trust
Перезапустите postgres
service postgresql restart
Подключиться к базе данных
# as any linux user psql -U postgres # or as user postgres sudo -u postgres psql
Изменить пароль
ALTER USER postgres WITH PASSWORD 'password';
Выход
\q
Восстановите ваши изменения в
pg_hba.conf
по умолчанию для postgresql 9.6 в Debian 9.8.0 используется# Database administrative login by Unix domain socket local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. #local replication postgres peer #host replication postgres 127.0.0.1/32 md5 #host replication postgres ::1/128 md5
Перезапустите postgres
service postgresql restart
Примечание 2: если вы хотите изменить пароль для host
записать, затем сделать то же, что и выше, используя метод trust
и соединитесь с опцией hostname, используя psql -U postgres -h localhost postgres
,