PHP PDO не может подключиться к localhost

1

PHP: использование PHP 5.3.10 на ubuntu vm через брандмауэр DB: Postgres 9.3.2.0

Я могу легко подключиться к удаленной БД; однако, когда я пытаюсь подключиться к локальному DB DB, я получаю сообщение об ошибке

new PDO("pgsql:dbname=testdb;host=127.0.0.1;user=user1;password=tester;port=5432");

[Mon Jun 08 21:37:15 2015] [error] [client 10.0.2.2] PHP Неустранимая ошибка: не удалось исключить "PDOException" с сообщением "SQLSTATE [08006] [7] не удалось подключиться к серверу: соединение отклонено\n\Сервер работает на хосте "127.0.0.1" и принимает\n\tTCP/IP-соединения на порту 5432? в /lib/Db.inc:28\nStack trace:\n # 0/lib/Db.inc(28): PDO-> __ construct ('pgsql: dbname = te...')\n # 1/www/page1.php(9): Db-> __construct ('postgres://test...')\n # 2 {main}\n выбрано in/lib/Db.inc в строке 28

Я знаю, что это не проблема подключения, так как мой локальный db работает нормально

psql postgres://user1:[email protected]/testdb
  • 0
    отказано в соединении = ничего не прослушивается по этому ip и / или номеру порта, или брандмауэр активно запрещает соединение, отправляя адрес назначения icmp недоступным.
  • 0
    Попробуйте удалить порт или попробуйте порт 3306
Показать ещё 4 комментария
Теги:
pdo
psql

1 ответ

1

Я работаю на Fedora 23 и после изменения /var/lib/pgsql/data/pg_hba.conf с ident на md5 мне не удалось связаться с psql postgres://user1:[email protected]/testdb. Наконец выяснилось, что selinux блокирует соединение.

Быстрое исправление - отредактировать /etc/selinux/config для disabled и перезагрузки. Но лучше было бы проверить, как работать с selinux и портами.

  • 2
    Я не знаю почему, но если я трачу максимум 1 час на решение проблемы в моем linux, то я должен думать, что это как-то связано с системой SELinux, и я всегда прав в этом. В любом случае, я не думаю, что лучше отключать SELinux, особенно в среде, где он существует. В случае с fedora просто напишите 'setsebool -P httpd_can_network_connect_db on', и вы скажете selinux принять вашу реализацию apache для подключения к "удаленной" (локальной) базе данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню