Я пытаюсь подключиться к своей базе данных, используя этот код:
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
не являются взаимозаменяемыми.