Недавно я экспериментировал с настройками в pg_hba.conf. Я прочитал документацию PostgreSQL и подумал, что мне нужен метод аутентификации "пароль". Есть много людей, которые имеют доступ к серверу, над которым работает PostgreSQL, поэтому мне не нужен метод «доверия». Я изменил это. Но потом PHP перестал работать с базой данных.
Я получаю следующее сообщение: «Предупреждение: pg_connect (): невозможно подключиться к серверу PostgreSQL: FATAL: аутентификация пароля не удалась для пользователя« myuser »в /my/path/to/connection/class.php в строке 35». Это немного странно, потому что я могу подключиться через phppgadmin без каких-либо проблем, а также я могу подключиться со своего домашнего компьютера с помощью psql - опять же без каких-либо проблем.
Это мой pg_hba.conf:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all password
# IPv4 local connections:
host all all 127.0.0.1/32 password
# IPv6 local connections:
host all all ::1/128 password
Строка подключения, которую я использую с pg_conenct, следующая:
$connect_string = "host=localhost port=5432 dbname=mydbname user=auser password=apassword";
$dbConnection = pg_connect($connection_string);
Кто-нибудь знает, почему это происходит? Я что-то неправильно сконфигурировал?
Похоже, что когда у вас есть пароль, содержащий косые черты (\ /), вам нужно экранировать их в URL-адресе подключения pg_connect. После этого у меня не возникло проблем с подключением к базе данных через php. Надеюсь, это поможет кому-то с этой проблемой :)