Не удается подключиться к удаленному серверу PostgreSQL через PHP

Подключаясь к базе данных PostgreSQL через удаленный IP-адрес, я добился успеха через Windows, используя pgAdmin III, но я получаю ошибки всякий раз, когда пытаюсь подключиться с локального веб-сервера CentOS 6 Apache, используя стандартный php-pgsql использование библиотеки pg_connect(),

Заметки:

  1. Я не контролирую удаленный сервер, но могу запросить дополнительную информацию, если это необходимо.
  2. Мой пароль содержит специальный символ (хотя это не символ кавычки).

Кредиты являются следующие:

Host (IP): xx.xx.xx.xx
Port: 5432
DBname: sandbox
Username: abc
Password: ***
MaintenanceDB: template1

Это код PHP, который я пытался запустить на моем локальном сервере:

pg_connect("host=xx.xx.xx.xx port=5432 dbname=sandbox user=abc password=***");

Я также попробовал:

pg_connect("host=xx.xx.xx.xx port=5432 dbname=template1 user=abc password=***");

Когда я пытаюсь подключиться, я получаю следующую ошибку:

Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "xx.xx.xx.xx" and accepting TCP/IP connections on port 5432?

Я добавил / оставил комментарий extension=pgsql.so в /etc/php.d/ каталог и service httpd restart, Я даже дошел до открытия моего iptables порты как таковые, поэтому не должно быть никаких сомнений в блокировке портов локального брандмауэра:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 5432 -j ACCEPT

Заранее спасибо:-)

1 ответ

Согласно вашей проблеме с подключением postgresql, это решение может работать. Я просто взял этот ответ из руководства php, и я не уверен в этом, поэтому, пожалуйста, смотрите здесь для получения дополнительной информации http://php.net/manual/en/function.pg-connect.php

Вы должны попытаться оставить части host = и port = вне строки подключения. Это звучит странно, но это "опция" Postgre. Если вы не активировали порт TCP/IP в postgresql.conf, то postgresql не будет принимать входящие запросы от порта TCP/IP.

Другие вопросы по тегам