Я впервые работаю с Laravel, и у меня настроен проект, но я не могу подключиться к базе данных, созданной в Postgres. Всякий раз, когда я пытаюсь подключиться к базе данных для запроса (или чего-либо еще), я получаю эту ошибку:
PDOException
SQLSTATE[08006] [7] FATAL: password authentication failed for user "marlie" FATAL: password authentication failed for user "marlie"
Я использую Windows 10, PostgreSQL 11, Laravel 6.0.4. Я могу подключиться к базе данных через pgAdmin4, командную строку и psycopg2 без каких-либо проблем с аутентификацией пароля. Только Laravel доставляет мне неприятности.
Я пытался создать новый проект Laravel, создать нового суперпользователя (который я протестировал, может успешно получить доступ к базе данных из других программ, упомянутых выше). Я также попытался поместить имя пользователя и пароль в одинарные и двойные кавычки. Я попытался изменить имя базы данных на значение номера OID в моем файле postgreSQL для базы данных. Я также попытался добавить абсолютный каталог файлов. Я попытался изменить порт с 5432 на 54320. Я также пробовал другие пароли.
В некоторых результатах поиска было предложено поиграть с файлом pg_hba.conf и добавить несколько строк, таких как (отступ здесь немногозабавно, но в реальном файле все выстроено):
local all marlie md5
local all marlie trust
host all all ::1/0 trust
host all all all trust
Я также попытался изменить все на доверие, и в этом случае я могу войти в систему из командной строки без пароля, но Laravel все равно победилне дай мне! Кроме того, мой ноутбук с Windows, похоже, не поддерживает локальные соединения, поскольку они являются доменами Unix-сокетов, поэтому любые локальные записи в pg_hba.conf заканчиваются тем, что файл вообще не может быть загружен. В настоящее время мой файл pg_hba.conf возвращается к настройкам по умолчанию.
Я попытался войти через ssh в мой проект Laravel через Homestead.
$ vagrant ssh
$ psql -d natureFun -U marlie -W
Password:
psql: FATAL: Peer authentication failed for user "marlie"
Я подумал, что это было интересно, потому чтонигде в моем файле conf я не говорю использовать одноранговую аутентификацию. Я только когда-либо пробовал доверие и md5.
Это мой файл .env от Laravel
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=natureFun
DB_USERNAME=marlie
DB_PASSWORD=secret
Это файл 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 127.0.0.1/32 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5