AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 51140
Accepted
Léo Léopold Hertz 준영
Léo Léopold Hertz 준영
Asked: 2009-08-06 05:20:34 +0800 CST2009-08-06 05:20:34 +0800 CST 2009-08-06 05:20:34 +0800 CST

让 PHP 与 PostgreSQL 通信

  • 772

我尝试在 Firefox 中使用的 PHP 代码

<?php
 // Connecting, selecting database
 $dbconn = pg_connect("host=localhost dbname=masi user=postgres password=abc")
     or die('Could not connect');
 ?>

我明白了

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "postgres" in /var/www/ex1.php on line 3

问题似乎出在我的/etc/postgresql/8.3/main/pg_hba.conf. 看来我需要在文件中添加一些 ip-address。

我的 pg_dba.conf 中的代码

# Database administrative login by UNIX sockets
 local   all         postgres                          ident sameuser

 # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

 # "local" is for Unix domain socket connections only
 local   all         all                               ident sameuser
 # IPv4 local connections:
 host    all         all         127.0.0.1/32          md5
 # IPv6 local connections:
 host    all         all         ::1/128               md5

该错误似乎在 PostgresSQL 中,因为 PHP 和 Apache2 可以工作。我可以通过 访问 Psql sudo -u postgres psql,因为我没有设法更改默认设置。这很可能是问题的原因。但是,我的 PHP 代码使用默认设置,所以这应该不是问题。

我在/etc/apache2/envvars中更改了一行,但未成功:

export APACHE_RUN_USER=postgres     // I changed this line from masi to postgres
export APACHE_RUN_GROUP=www-data
export APACHE_PID_FILE=/var/run/apache2.pid

我收到相同的错误消息。

如何在 Ubuntu 中通过 pg_hba.conf 让 PHP 与 PostgreSQL 一起工作?

php database postgresql
  • 3 3 个回答
  • 11307 Views

3 个回答

  • Voted
  1. Best Answer
    Léo Léopold Hertz 준영
    2009-08-07T12:28:40+08:002009-08-07T12:28:40+08:00

    #1 问题

    通过以下方式登录用户 Postgres

    sudo su postgres
    

    创建一个新用户,例如 Masi for PostgreSQL 通过

     CREATE USER masi with SUPERUSER
    

    然后,重新登录到您的默认用户。

    #2 问题

    Pg 中的默认用户没有密码。这导致了PHP中的问题。

    我将其更改dbconn为以下

     // independent variables
     $dbHost = "localhost";
     $dbPort = 5432;
     $dbName = "masi";
     $dbUser = "masi";
     $dbPassword = "your-password";
    
     $conn = "host=$dbHost port=$dbPort dbname=$dbName user=$dbUser password=$dbPassword";
    

    问题是我不知道默认 Postgres 帐户的密码。这迫使我创建一个带有密码的新帐户。

    如果没有数据库中的密码,我没有让 pgAdmin 3 工作。

    • 1
  2. andres descalzo
    2009-08-06T05:30:20+08:002009-08-06T05:30:20+08:00

    尝试

    host    all         all         127.0.0.1/32          trust
    

    或者

    local   all         all                               trust
    

    链接文本

    • 0
  3. Tan Tran
    2015-09-17T09:20:11+08:002015-09-17T09:20:11+08:00

    我通过将以下行添加到pg_dba.conf.

    # host    all         all         127.0.0.1/32          trust #
    
    • -5

相关问题

  • 有人对 LeftHand 的 VSA SAN 有经验吗?[关闭]

  • 如何在 IIS 6 中免费重写 url (ala mod_rewrite)?

  • 我应该从 RAID 5 配置运行我的数据库吗?

  • mod_rewrite 不转发 GET 参数

  • 更改 PHP 的默认配置设置?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve