Назад | Перейти на главную страницу

PostgreSQL pg_hba.conf с аутентификацией по паролю не будет работать с PHP pg_connect?

Недавно я экспериментировал с настройками в 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. Надеюсь, это поможет кому-то с этой проблемой :)