Какой тип аутентификации использует PDO на Postgres? - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь подключиться к своей базе данных, используя этот код:

Db::$dbh = new PDO("pgsql:dbname=$db;host=$host;port=$port", $user, $pass, $opt);

, и это не с:

FATAL: аутентификация идентификатора не удалась для пользователя "postgres"

Когда я использую те же учетные данные в командной строке, он работает нормально:

psql -h127.0.0.1 -Upostgres --password -ddatabase1 -p5432
Password for user postgres: 
psql (10.5)
Type "help" for help.

database1=# 

Почему PDO использует идентификатор аутентификации, хотя я явно использую имя пользователя и пароль?

Обновление Я обнаружил, что в командной строке также происходит сбой при использовании localhost в качестве имени хоста. Очевидно, 127.0.0.1 и localhost не являются взаимозаменяемыми.

1 Ответ

0 голосов
/ 31 октября 2018

При использовании localhost в качестве хоста PDO (или Postgres?) Может использовать IPv6 для подключения. И эта строка была такой в ​​моем pg_hba.conf:

host    all             all             ::1/128                 ident

Итак, вот почему ident был использован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...