【问题标题】:Can't connect to postgreSQL database through php pdo driver无法通过 php pdo 驱动程序连接到 postgreSQL 数据库
【发布时间】:2011-12-21 16:12:51
【问题描述】:

我最近决定从 MySQL 切换到 PostgreSQL,主要是为了学习一个新的数据库。这很痛苦,但我想我已经很接近了。

我正在使用php和PDO,我的PDO驱动已经安装和配置成功了。

打开我的网站,我收到错误:

Connection failed: SQLSTATE[08006] [7] FATAL: Ident authentication failed for user "postgres"

我正在使用以下连接调用(我尝试了在 $dsn 变量和单独的 $user/$pass 变量中调用 user/pw 的几种变体,包括 port=5432):

$dsn  = 'pgsql:dbname=db1;host=localhost;user=postgres;password=pass';
$db = new PDO($dsn);

另外,我可以从命令行登录到我的数据库:

$ su postgres

(通过)

$ psql db1

输出:

无法将目录更改为“/home/ec2-user” psql (8.4.9) 类型 “帮助”寻求帮助。

db1=#

有什么想法吗?如果需要,我很乐意提供更多信息。

【问题讨论】:

  • 你的pg_hba.conf文件还好吗?在开始使用 PostgreSQL 时,这是一个已知的痛苦来源......
  • @maraspin:我只是尝试在刷新此页面之前弄乱它。有效。我不得不将一些“身份”值转换为“信任”。您能否将其添加为答案以便我接受?
  • 当然。答案已添加。肿瘤坏死因子。 :-) PS 注意,不过。设置太松散可能会危及您的安全。一旦你确定你的问题在那里,我建议你再看一眼 pg_hba.conf 文档并采取相应的行动。你会看到......无论如何,这是你需要使用 PostgreSQL 的东西 ;-)

标签: php postgresql pdo


【解决方案1】:

你的 pg_hba.conf 文件好吗?在开始使用 PostgreSQL 时,这是一个已知的痛苦来源。而且,您提到的情况是此类问题的良好候选者。 :-)

【讨论】:

  • 我必须将本地和 IPv4 记录的值从 ident 更改为 trust。最后,我有一个可以正常工作的 LAPP(5.4) 服务器。谢谢!
  • 很高兴您找到了问题的根源。既然您确切知道该把手放在哪里,我建议您看一下 PostgreSQL 文档,以便正确配置 pg_hba.conf 文件。可能对您的安全很重要。
猜你喜欢
  • 2016-07-24
  • 1970-01-01
  • 2015-12-09
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 2018-02-19
  • 1970-01-01
  • 2021-08-28
相关资源
最近更新 更多