Не удается подключиться к удаленному серверу PostgreSQL через PHP
Подключаясь к базе данных PostgreSQL через удаленный IP-адрес, я добился успеха через Windows, используя pgAdmin III, но я получаю ошибки всякий раз, когда пытаюсь подключиться с локального веб-сервера CentOS 6 Apache, используя стандартный php-pgsql
использование библиотеки pg_connect()
,
Заметки:
- Я не контролирую удаленный сервер, но могу запросить дополнительную информацию, если это необходимо.
- Мой пароль содержит специальный символ (хотя это не символ кавычки).
Кредиты являются следующие:
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.