Вопрос по postgresql – Я забыл пароль, который ввел при установке postgres

157

Я либо забыл, либо набрал (во время установки) пароль для пользователя по умолчанию в Postgres. Я не могу запустить его, и я получаю следующую ошибку:

psql: FATAL:  password authentication failed for user "hisham"
hisham-agil: hisham$ psql 

Есть ли способ сбросить пароль или как создать нового пользователя с привилегиями суперпользователя?

Я новичок в Postgres и только что установил его впервые. Я пытаюсь использовать его с Rails, и я использую Mac OS X Lion.

Я пока не могу комментировать ответы, поэтому должен сделать это так. Я сделал то, что сказал SaiyanGirl, однако мне все еще нужно было ввести пароль, который был «postgres». чтобы войти, то я мог сбросить пароль Pascale

Ваш Ответ

11   ответов
1

/etc/postgresql/<version>/main/pg_hba.conf and find the following line:

local   all             postgres                                md5

Edit the line and change md5 at the end to trust and save the file

Reload the postgresql service

$ sudo service postgresql reload

This will load the configuration files. Now you can modify the postgres user by logging into the psql shell

$ psql -U postgres

Update the postgres user's password

alter user postgres with password 'secure-passwd-here';

/etc/postgresql/<version>/main/pg_hba.conf and change trust back to md5 and save the file

Reload the postgresql service

$ sudo service postgresql reload

Verify that the password change is working

$ psql -U postgres -W
Error: User Rate Limit Exceeded
0

на который ссылается PGPASSFILE, может содержать пароли, которые должны использоваться, если для соединения требуется пароль (и в противном случае пароль не был указан). В Microsoft Windows файл называется% APPDATA% \ postgresql \ pgpass.conf (где% APPDATA% относится к подкаталогу Application Data в профиле пользователя).

Этот файл должен содержать строки следующего формата:

Имя хоста: порт: база данных: имя пользователя: пароль

(Вы можете добавить комментарий напоминания в файл, скопировав строку выше и поставив перед ней символ #.) Каждое из первых четырех полей может быть буквальным значением или *, что соответствует чему угодно. Будет использовано поле пароля из первой строки, соответствующее текущим параметрам подключения. (Поэтому при использовании подстановочных знаков ставьте сначала более конкретные записи.) Если запись должна содержать: или \, экранируйте этот символ с помощью. Имя хоста localhost совпадает с соединениями TCP (имя хоста localhost) и сокета домена Unix (pghost empty или каталог сокета по умолчанию), поступающими с локального компьютера. На резервном сервере имя базы данных репликации соответствует подключению потоковой репликации к главному серверу. Поле базы данных имеет ограниченную полезность, поскольку пользователи имеют одинаковый пароль для всех баз данных в одном кластере.

В системах Unix разрешения на .pgpass должны запрещать любой доступ к миру или группе; достигните этого командой chmod 0600 ~ / .pgpass. Если разрешения менее строгие, чем этот, файл будет игнорироваться. В Microsoft Windows предполагается, что файл хранится в безопасном каталоге, поэтому проверка специальных разрешений не производится.

75

-h localhost в качестве параметра командной строки. Если нет, postgres попытается подключиться в режиме аутентификации PEER.

Ниже показаны сброс пароля, неудачный вход в систему с аутентификацией PEER и успешный вход в систему с использованием TCP-соединения.

# sudo -u postgres psql
could not change directory to "/root"
psql (9.1.11)
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:
postgres=# \q

В противном случае:

# psql -U postgres -W
Password for user postgres:
psql: FATAL:  Peer authentication failed for user "postgres"

Работать с-h localhost:

# psql -U postgres -W  -h localhost
Password for user postgres:
psql (9.1.11)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=#
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
-1

Отредактируйте файл 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. Вы можете изменить пароль, используя Файл-> Изменить пароль.

Если пользователь postgres не имеет привилегий суперпользователя, вы не можете изменить пароль. В этом случае войдите в систему с другим пользователем (pgsql) с правами суперпользователя и предоставьте привилегии другим пользователям, щелкнув правой кнопкой мыши по пользователям и выбрав свойства -> Ролевые привилегии.

1

es (& gt; 10),

Перейдите к месту установки postgres и найдитеpg_hba.conf, you will find it in ..\postgres\data\pg_hba.conf

Откройте этот файл с помощью блокнота, найдите эту строку,

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections: 
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
#..

Измените метод с md5 на доверие,

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections: 
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# ...

Теперь перейдите в SQL Shell (PSQL) и оставьте все пустым,

Server [localhost]:
Database [postgres]:
Port [8000]:
Username [postgres]: 

На этот раз он не будет запрашивать пароль, и вы войдете в систему,

Now run this line, ALTER USER yourusername WITH SUPERUSER

Теперь вы можете покинуть оболочку с помощью \ q

Снова перейдите в файл pg_hba.conf, измените МЕТОД с доверия на md5 и сохраните его.

Теперь войдите под своим новым пользователем и паролем, и вы можете проверить \ du для его атрибутов.

1

psql & quot; использовать этого пользователя для подключения к порту. Если вы измените пароль пользователя PostgreSQL, он не изменит пароль Windows. Командная строка juste ниже работает, только если у вас есть доступ к командной строке.

Вместо этого вы можете использовать приложение Windows GUI & quot; c: \ Windows \ system32 \ lusrmgr.exe & quot ;. Это приложение для управления пользователями, созданными Windows. Теперь вы можете изменить пароль.

56

pg_hba.conf (C:\Program Files\PostgreSQL\9.3\data) файл изменился, так как эти ответы были даны. В Windows мне удалось открыть файл и изменитьMETHOD отmd5 вtrust:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127...1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

Затем, используя pgAdmin III, я вошел в систему без пароля и изменил пользователяpostgres' пароль, перейдя вFile -> Change Password

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededtrustError: User Rate Limit ExceededthisError: User Rate Limit Exceeded
304

pg_hba.conf - it may be located, for example in /etc/postgresql-9.1/pg_hba.conf.

cd /etc/postgresql-9.1/

Back it up

cp pg_hba.conf pg_hba.conf-backup

place the following line (as either the first uncommented line, or as the only one):

For all occurrence of below (local and host) , exepct replication section if you don't have any it has to be changed as follow ,no MD5 or Peer autehication should be present.

`local  all   all   trust`

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

you should change

local all all trust

to

host all all 127.0.0.1/32 trust

you can now connect as any user. Connect as the superuser postgres (note, the superuser name may be different in your installation. In some systems it is called pgsql, for example.)

psql -U postgres

or

psql -h 127.0.0.1 -U postgres

(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

Further Reading о том файле pg_hba:http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededpsqlError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

net user postgres postgres

и войдите в postgres с помощью postgres / postgres в качестве пользователя / пароля

6

sudo su - postgres стать пользователем postgres и оттуда изменить то, что требуется с помощью psql.

1

Откройте файл pg_hba.conf с помощью редактора gedit из терминала:

sudo gedit /etc/postgresql/9.5/main/pg_hba.conf

Он попросит пароль. Введите пароль для входа администратора. Это откроет Gedit с файлом. Вставьте следующую строку:

host  all   all  127.0.0.1/32  trust

ниже -

# Database administrative login by Unix domain socket

Сохраните и закройте его. Закройте терминал, снова откройте его и выполните команду:

psql -U postgres

Теперь вы войдете в консоль psql. Теперь измените пароль, введя это:

ALTER USER [your prefered user name] with password '[desired password]';

Если он говорит, что пользователь не существует, то вместоALTER использованиеCREATE.

Наконец, удалите эту строку, вставленную в pg_hba, и сохраните ее.

Похожие вопросы