无法使用 PHP pg_connect() 连接到 PostgreSQL
Posted
技术标签:
【中文标题】无法使用 PHP pg_connect() 连接到 PostgreSQL【英文标题】:Can't Connect to PostgreSQL with PHP pg_connect() 【发布时间】:2011-03-29 17:54:21 【问题描述】:编辑:我刚刚意识到这个问题可能更适合 ServerFault。版主不要复制它,请把它移过来?谢谢。
我检查了 php-info,Postgresql 扩展在那里(pg_connect()
不是未定义的)。我还可以在本地主机上使用psql
连接到 postgresql(我已经适当地编辑了我的 pg_hba.conf 文件)。这是不起作用的代码:
<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mydb user=myuser password=mypass") or die('Could not connect: ' . pg_last_error());
?>
此代码只会导致浏览器中显示“无法连接:”。
我检查了我的 apache 日志,这是相关的错误消息:
PHP Warning: pg_connect() [<a href='function.pg-connect'>function.pg-connect</a>]:
Unable to connect to PostgreSQL server: could not connect to server: Permission
denied\n\tIs the server running on host "localhost" and accepting\n\tTCP/IP
connections on port 5432?
如何修复/调试此问题?
编辑:我在 Centos 5.4 顺便说一句。
【问题讨论】:
【参考方案1】:无法连接到服务器:权限被拒绝
编辑:我在 Centos 5.4 顺便说一句。
检查/var/log/audit/audit.log
。您可能遇到了 SELinux 规则。
【讨论】:
谢谢,就是这样。我刚刚做了setenforce 0
,它奏效了。以上是关于无法使用 PHP pg_connect() 连接到 PostgreSQL的主要内容,如果未能解决你的问题,请参考以下文章
PHP 无法在 CentOS 7 上连接到 PostgreSQL
无法连接到 PostgreSQL 服务器:致命:角色“apache”不存在
如何在不指定数据库名称的情况下连接到 PostgreSQL?