как сбросить пароль postgresql linux
PostgreSQL: Resetting password of PostgreSQL on Ubuntu [closed]
Want to improve this question? Update the question so it’s on-topic for Stack Overflow.
In Ubuntu, I installed PostgreSQL database and created a superuser for the server.
If I forgot the password of the postgresql superuser, how can I reset it (the password) for that user?
I tried uninstalling it and then installing it again but the previously created superuser is retained.
1 Answer 1
Assuming you’re the administrator of the machine, Ubuntu has granted you the right to sudo to run any command as any user.
Also assuming you did not restrict the rights in the pg_hba.conf file (in the /etc/postgresql/9.1/main directory), it should contain this line as the first rule:
(About the file location: 9.1 is the major postgres version and main the name of your «cluster». It will differ if using a newer version of postgres or non-default names. Use the pg_lsclusters command to obtain this information for your version/system).
Then you should be able to log in with psql as the postgres superuser with this shell command:
Once inside psql, issue the SQL command:
Keep in mind that you need to type postgres with a single S at the end
It asks for the password with a double blind input, then hashes it according to the password_encryption setting and issue the ALTER USER command to the server with the hashed version of the password, instead of the clear text version.
Я забыл пароль, который ввел при установке postgres
Я либо забыл, либо набрал (во время установки) пароль для пользователя по умолчанию в Postgres. Кажется, я не могу его запустить и получаю следующую ошибку:
Есть ли способ сбросить пароль или как создать нового пользователя с привилегиями суперпользователя?
Я новичок в Postgres и только что установил его впервые. Я пытаюсь использовать его с Rails, и я использую Mac OS X Lion.
cp pg_hba.conf pg_hba.conf-backup
поместите следующую строку (в качестве первой строки без комментариев или в качестве единственной):
Для всех случаев, описанных ниже (локальный и хост), в разделе репликации exepct, если у вас его нет, его необходимо изменить следующим образом, не должно присутствовать никакого подтверждения MD5 или Peer.
перезапустите сервер PostgreSQL (например, в Linux 🙂
sudo /etc/init.d/postgresql restart
Если служба (демон) не запускает отчеты в файле журнала:
локальные соединения не поддерживаются этой сборкой
ты должен измениться
local all all trust
host all all 127.0.0.1/32 trust
(обратите внимание, что с первой командой вы не всегда будете связаны с локальным хостом)
Сбросить пароль (‘замените 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
Ниже показаны сброс пароля, неудачный вход в систему с аутентификацией PEER и успешный вход в систему с использованием TCP-соединения.
В противном случае:
Отредактируйте файл /etc/postgresql/ /main/pg_hba.conf и найдите следующую строку:
Отредактируйте строку и md5 в конце измените на trust и сохраните файл
Перезагрузите сервис postgresql
Это загрузит файлы конфигурации. Теперь вы можете изменить postgres пользователя, войдя в psql оболочку
Обновите postgres пароль пользователя
Отредактируйте файл /etc/postgresql/ /main/pg_hba.conf и trust вернитесь обратно md5 и сохраните файл
Перезагрузите сервис postgresql
Убедитесь, что смена пароля работает
У меня просто была эта проблема в Windows 10, и проблема в моем случае заключалась в том, что я просто работал, psql и по умолчанию он пытался войти в систему с моим именем пользователя Windows («Натан»), но не было пользователя PostgreSQL с таким именем, и это не говорило мне об этом.
Добавление ответа для пользователя Windows для последней версии postgres (> 10),
Откройте этот файл с помощью блокнота, найдите эту строку,
Измените метод с 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. Теперь измените пароль, введя это:
Наконец, удалите эту строку, вставленную в pg_hba, и сохраните ее.
Если вы находитесь в Windows, вы можете просто запустить
и войдите в postgres с помощью postgres / postgres в качестве пользователя / пароля
Этот файл должен содержать строки следующего формата:
Имя хоста: порт: база данных: имя пользователя: пароль
(Вы можете добавить комментарий напоминания в файл, скопировав строку выше и поставив перед ней знак #.) Каждое из первых четырех полей может быть буквальным значением или *, что соответствует чему угодно. Будет использовано поле пароля из первой строки, соответствующее текущим параметрам соединения. (Поэтому при использовании подстановочных знаков ставьте сначала более конкретные записи.) Если запись должна содержать: или \, экранируйте этот символ с помощью. Имя хоста localhost совпадает с соединениями TCP (имя хоста localhost) и сокета домена Unix (pghost empty или каталог сокета по умолчанию), поступающими с локального компьютера. На резервном сервере имя базы данных репликации соответствует подключению потоковой репликации к главному серверу. Поле базы данных имеет ограниченную полезность, поскольку пользователи имеют одинаковый пароль для всех баз данных в одном кластере.
I forgot the password I entered during postgres installation
I either forgot or mistyped (during the installation) the password to the default user of Postgres. I can’t seem to be able to run it and I get the following error:
Is there anyway to reset the password or how do I create a new user with superuser privileges?
I am new to Postgres and just installed it for the first time. I am trying to use it with Rails and I am running Mac OS X Lion.
15 Answers 15
cp pg_hba.conf pg_hba.conf-backup
place the following line (as either the first uncommented line, or as the only one):
restart your PostgreSQL server (e.g., on Linux:)
sudo /etc/init.d/postgresql restart
If the service (daemon) doesn’t start reporting in log file:
local connections are not supported by this build
local all all trust
host all all 127.0.0.1/32 trust
(note that with the first command you will not always be connected with local host)
Reset password (‘replace my_user_name with postgres since you are resetting postgres user)
ALTER USER my_user_name with password ‘my_secure_password’;
Restore the old pg_hba.conf as it is very dangerous to keep around
cp pg_hba.conf-backup pg_hba.conf
restart the server, in order to run with the safe pg_hba.conf
sudo /etc/init.d/postgresql restart
The below shows a reset of the password, a failed login with PEER authentication and a successful login using a TCP connection.
The pg_hba.conf ( C:\Program Files\PostgreSQL\9.3\data ) file has changed since these answers were given. What worked for me, in Windows, is to open the file and change the METHOD from md5 to trust :
I was just having this problem on Windows 10 and the issue in my case was that I was just running psql and it was defaulting to trying to log in with my Windows username («Nathan»), but there was no PostgreSQL user with that name, and it wasn’t telling me that.
Edit the file /etc/postgresql/ /main/pg_hba.conf and find the following line:
Edit the line and change md5 at the end to trust and save the file
Reload the postgresql service
This will load the configuration files. Now you can modify the postgres user by logging into the psql shell
Update the postgres user’s password
Edit the file /etc/postgresql/ /main/pg_hba.conf and change trust back to md5 and save the file
Reload the postgresql service
Verify that the password change is working
Adding the answer for Windows User for the latest postgres version (>10),
Open that file with notepad, find this line,
Change the method from md5 to trust,
Now go to your SQL Shell(PSQL) and leave everything blank,
It will not ask for password this time, and you will be logged in,
Now run this line, ALTER USER yourusername WITH SUPERUSER
Now you can leave the shell with \q
Again go to the file pg_hba.conf and change METHOD from trust to md5 again, and save it.
Now login with your new user and password and you can check \du for its attributes.
FOR WINDOWS: (what has helped me)
Open your cmd and go to C:\Program Files\PostgreSQL\12\data This is usually the right path. You might have it stored somewhere else. Note that, if you have a different postgresql version, there will be a different number. That doesn’t matter.
Find a pg_hba.conf file and copy it to somewhere else (That way you will have an unmodified version of this file, so you will be able to look at it after we make some changes)
Open pg_hba.conf file (not the backup, but the original)
Find the multiple lines that start with host near the bottom of the file:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
Replace md5 with trust:
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
Go to your search bar on windows and open Services app. Find postgres and restart it. picture of services app
Write cd.. in cmd and then cd bin. Your path should be C:\Program Files\PostgreSQL\12\bin
Enter: ALTER USER postgres with password ‘ ‘; Make sure that you include ; at the end “ALTER ROLE” should be displayed as an indication that the previous line was executed successfully
Open original pg_hba.conf file and change back from trust to md5
Restart the server with Services app as before
For Windows installation, a Windows user is created. And «psql» use this user for connection to the port. If you change the PostgreSQL user’s password, it won’t change the Windows one. The commandline juste below works only if you have access to commandline.
Instead you could use Windows GUI application «c:\Windows\system32\lusrmgr.exe». This app manage users created by Windows. So you can now modify the password.
What I did to resolve the same problem was:
Open pg_hba.conf file with gedit editor from the terminal:
It will ask for password. Enter your admin login password. This will open gedit with the file. Paste the following line:
Save and close it. Close the terminal and open it again and run this command:
You will now enter the psql console. Now change the password by entering this:
Lastly, remove that certain line you pasted in pg_hba and save it.
If you are in windows you can just run
and login in postgres with postgres/postgres as user/password
This file should contain lines of the following format:
/.pgpass. If the permissions are less strict than this, the file will be ignored. On Microsoft Windows, it is assumed that the file is stored in a directory that is secure, so no special permissions check is made.
Я забыл пароль, который я ввел во время установки postgres
Я либо забыл, либо ошибся (во время установки) пароль для пользователя Postgres по умолчанию. Кажется, я не могу запустить его, и я получаю следующую ошибку:
есть ли способ сбросить пароль или как создать нового пользователя с привилегиями суперпользователя?
Я новичок в Postgres и только что установил его в первый раз. Я пытаюсь использовать его с Rails, и я запускаю Mac OS X Lion.
9 ответов
cp pg_hba.conf pg_hba.conf-backup
поместите следующую строку (как первую незафиксированную строку или как единственную):
local all all trust
перезапустите сервер PostgreSQL (например, в Linux:)
sudo /etc/init.d/postgresql restart
если служба (демон) не запускает отчеты в файле журнала:
локальные соединения не поддерживаются этой сборкой
вы должны изменить
local all all trust
host all all 127.0.0.1/32 trust
(обратите внимание, что с первой командой вы не всегда будете на связи с локальным узлом)
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
ниже показан сброс пароля, неудачный вход с одноранговой аутентификацией и успешный вход с использованием TCP-соединения.
The pg_hba.conf ( C:\Program Files\PostgreSQL.3\data ) файл изменился с тех пор, как были даны эти ответы. Что сработало для меня в Windows, это открыть файл и изменить METHOD С md5 до trust :
Если вы находитесь в Windows, вы можете просто запустить
и войдите в postgres с postgres/postgres как пользователь / пароль
для установки Windows создается пользователь Windows. И «psql» использует этого пользователя для подключения к порту. Если вы измените пароль пользователя PostgreSQL, он не изменит пароль Windows. Командная строка juste ниже работает, только если у вас есть доступ к командной строке.
редактировать файл /etc/postgresql/ /main/pg_hba.conf и найдите следующую строку:
изменить строку и изменить md5 в конце trust и сохраните файл
перезагрузка postgresql сервис
это загрузит файлы конфигурации. Теперь вы можете изменить postgres пользователь, войдя на psql раковины
обновить postgres пароль пользователя
перезагрузка postgresql сервис
убедитесь, что изменение пароля работает
что я сделал, чтобы решить ту же проблему:
открыть файл pg_hba.conf файл с редактором gedit из терминала:
он будет запрашивать пароль. Введите пароль администратора. Это откроет gedit с файлом. Вставьте следующую строку:
сохранить и закрыть его. Закройте терминал, откройте его снова и выполните следующую команду:
теперь вы войдете в консоль psql. Теперь изменить пароль, введя это:
наконец, удалите определенную строку, вставленную в pg_hba, и сохраните ее.
этот файл должен содержать следующие строки формат:
имя хоста: порт: база данных: имя пользователя: пароль
(вы можете добавить комментарий напоминания в файл, скопировав строку выше и предшествующую ей #.) Каждое из первых четырех полей может быть литеральным значением или*, которое соответствует чему угодно. Будет использоваться поле пароля из первой строки, соответствующее текущим параметрам соединения. (Поэтому при использовании подстановочных знаков сначала ставьте более конкретные записи.) Если запись должна содержать : или \, избежать этого символа с. Имя хоста localhost соответствует подключениям TCP (имя хоста localhost) и Unix domain socket (pghost empty или каталог сокетов по умолчанию), поступающим с локального компьютера. На резервном сервере имя базы данных репликации соответствует потоковым соединениям репликации, выполненным на главном сервере. Поле базы данных имеет ограниченную полезность, поскольку пользователи имеют одинаковый пароль для всех баз данных в одном кластере.
/.pgpass. Если разрешения менее строгие, файл будет проигнорирован. В Microsoft Windows предполагается, что файл хранится в защищенном каталоге, поэтому проверка специальных разрешений не производится.
Сброс пароля в PostgreSQL
Забыли пароль учетной записи postgres в PostgreSQL? Выполнить сброс не сложно. Для этого необходимо выполнить пару манипуляций.
1. Правим файл pg_hba.conf
Находим файл в папке Data директории установки PostgreSQL. В Windows путь выглядит примерно так c:\Program Files\PostgreSQL\9.2.4-1.1C\data\
В этом файле нужно найти такие строчки
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
Меняем md5 на trust.
2. Удаляем файл pgpass.conf
В Windows этот файл находится в c:\Users\Administrator\AppData\Roaming\postgresql\
Здесь хранится старый пароль от PostgreSQL. Простое изменение хранимого здесь пароля мне не помогло. Поэтому я его просто удалил.
3. Меняем пароль в pgAdmin
Запускаем pgAdmin и нам предлагается ввести пароль. Если отметить галочку сохранить, то пароль будет сохранен в pgpass.conf и больше программой запрашиваться не будет.
Чтобы обеспечить безопасность использования паролей необходимо вернуть алгоритм шифрования md5. Для этого в файле pg_hba.conf параметр trust обратно меняем на md5.
Для подключения на локальном компьютере к PostgreSQL с помощью psql, pg_dump в локальных адресах IPv4 127.0.0.1/32 и IPv6 ::1/128 значение trust нужно оставить.
5 thoughts on “ Сброс пароля в PostgreSQL ”
Ты не сменил и не сбросил пароль. Ты отключил все механизмы защиты, поэтому он теперь пускает не с новым паролем, а вообще с ЛЮБЫМ. Строка trust как раз и отключает проверку пароля. А файл pgpass.conf нужен для того что бы утилитка pgAdmin могла туда сохранить пароль и не спрашивать его больше. Именно поэтому он храниться в твоем профиле, что бы никто другой не мог туда зяглянуть.
Пароль пользователя меняется командой ALTER USER user_name WITH PASSWORD ‘new_password’;
Прежде чем писать такой комментарий
Строка trust как раз и отключает проверку пароля.
..внимательней читайте статью, там написано
параметр trust обратно меняем на md5
Про файл pgpass.conf тоже в статье сказано.
Так что с голой жопой останутся только такие же невнимательные как ты.
Глохни, петух. Как я смогу изменить пароль, если не могу на сервер зайти без пароля, придурок!
Виндовозники привыкли мышкой водить. Нет чтоб в терминале просто и со вкусом ALTER USER user_name WITH PASSWORD ‘new_password’;