Не удается подключиться к postgres через PSQL или php, только pgAdmin4

#postgresql #authentication #pgadmin-4 #connexion

#postgresql #аутентификация #pgadmin-4 #подключение

Вопрос:

У меня установлен PostgreSQL 12 и используется Windows 10. Моя цель — подключиться к postgre через php, потому что это не сработало, я пробовал с plsql, но это тоже не сработало, я всегда получаю (как с plsql, так и с php с использованием PDO):

 FATAL: password authentication failed for user "postgres"
  

Подключение через plsql в cmd

Однако при попытке через pgAdmin4 я могу подключиться и получить доступ к своим базам данных. Сначала я использую свой пароль root, а затем когда-нибудь свой пользовательский postgres, поэтому я уверен, что мой пароль работает.

Вот мой файл pg_hba.conf: файл pg_hba.conf

У меня есть установленный пароль для postgres, который был установлен vua pgAdmin4.

Я не понимаю, почему это будет работать так, а не иначе, кто-нибудь может мне помочь?

Комментарии:

1. Попробуйте ввести другой пароль через pgAdmin4. ИЗМЕНИТЕ ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ postgres ‘NewPassword’;

2. @является ли ALTERROLE и ALTER USER одинаковыми? Я все равно сделал и то, и другое, и это применялось и работало для pgAdmin4, но не для plsql. Другое дело, что при запуске pgAdmin с моим навигатором по умолчанию (Opera) я могу открыть некоторые базы данных, но не ту, которую я хочу (внутренняя ошибка Uknown), тогда как с Firefox я могу открыть все

3. На самом деле я нашел проблему, я опубликую ответ, спасибо в любом случае!

Ответ №1:

Итак, после нескольких попыток я обнаружил, что ошибка plsql и php была вызвана неправильным адресом порта.

По умолчанию используется 5432, но по какой-то причине в моей конфигурации использовался 5433. Вы можете найти эту информацию в pgAdmin4, открыв свойства PostgreSQL 12, а затем перейдя на вкладку подключение.

Чтобы изменить используемый порт в plsql, я использовал:

 psql -U postgres -p 5433
  

Измените 5433 на свой настроенный порт, если у вас такая же проблема, вам также необходимо указать порт при использовании PDO php.