Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP PDO可以';无法连接到本地主机_Php_Postgresql_Pdo_Psql - Fatal编程技术网

PHP PDO可以';无法连接到本地主机

PHP PDO可以';无法连接到本地主机,php,postgresql,pdo,psql,Php,Postgresql,Pdo,Psql,PHP:通过Vagrant在ubuntu虚拟机上使用PHP5.3.10 DB:Postgres 9.3.2.0 我可以轻松地连接到远程数据库;然而,当我尝试连接到我拥有的本地dev 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致命错误:未捕获

PHP:通过Vagrant在ubuntu虚拟机上使用PHP5.3.10 DB:Postgres 9.3.2.0

我可以轻松地连接到远程数据库;然而,当我尝试连接到我拥有的本地dev 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\t服务器在主机“127.0.0.1”上运行,并在端口5432上接受\n\tTCP/IP连接?/lib.inc:28\n堆栈跟踪:\n\0/lib/Db.inc(28):PDO->uu构造('pgsql:dbname=te…')\n#1/www/page1.php(9):Db->u构造('postgres://test...')\n#2{main}\n在第28行的/lib/Db.inc中抛出

我知道这不是一个连接问题,因为我的本地数据库已启动并运行良好

psql postgres://user1:tester@127.0.0.1/testdb

我确实在Fedora 23上运行,在将
/var/lib/pgsql/data/pg_hba.conf
ident
更改为
md5
后,我无法连接
psqlpostgres://user1:tester@127.0.0.1/testdb
。最后发现selinux阻塞了连接


快速修复方法是将
/etc/selinux/config
编辑为
禁用
,然后重新启动。但检查如何使用selinux和端口将是更好的解决方案。

拒绝连接=不侦听该ip和/或端口号,或者防火墙正在通过发送无法访问的icmp目标来主动拒绝连接。请尝试删除该端口,或者尝试删除该端口3306@SzenisPostgreSQL,而不是MySQL;)你能把psql导入服务器吗?您能看到它在top/ps/netstat中运行吗?这听起来更像是一个配置问题,如果是的话,这是一个服务器故障问题。我可以很好地将psql插入服务器。我不知道为什么,但如果我在linux中最多花1个小时来面对一个问题,那么我必须认为这肯定与SELinux系统有关,我总是正确的。无论如何,我不认为这是禁用SELinux的最佳实践,尤其是在存在SELinux的环境中。对于fedora,只需编写“setsebool-P httpd_can_network_connect_db on”,这样您就告诉selinux接受apache实现来连接“远程”(本地)数据库。