【问题标题】:MapServer error : FATAL: Ident authentication failed for user "..."MapServer 错误:致命:用户“...”的身份验证失败
【发布时间】:2016-09-20 02:18:03
【问题描述】:

我正在尝试在 Centos 6 虚拟机上运行 MapServer 5/PostGIS 安装。 我在我的 cgi-bin 文件夹中部署了 MapServer,但是现在当我查询(使用 firefox)mapserv 文件时 使用网址[virtual machine local IP]/cgi-bin/mapserv?MAP=/var/www/cgi-bin/[...],我得到的只是一张带有以下错误消息的图像:

msDrawMap():图像处理错误。未能绘制名为 '[name 我的图层]'.;msPostGISLayerOpen():查询错误。数据库连接 失败(致命:用户“foo”的身份验证失败) 连接字符串 'user=foo dbname=foo 密码=foo 主机=localhost 端口=5432'

我尝试更改 pg_hba.conf 中的设置,但没有成功。 foo 数据库可以使用 foo 作为 sql 用户和 foo 作为密码使用 psql 命令访问。 我能做什么?

【问题讨论】:

  • 你运行 psqlOS 用户一样 MapServer 吗?..
  • 我以 root 用户身份运行 psql foo -U foo,我不知道 MapServer 使用的是哪个操作系统用户,也不知道如何设置它(我对 UNIX 有点陌生)。
  • 从你的回答中我看到 os 用户没关系 :) 密码只有 ASCII?没有特殊字符?
  • 密码只有几个小写字母(如foo)。没有数字,没有特殊字符。
  • G!我一定是瞎了眼! ident 不是 user!看postgresql.org/docs/current/static/auth-pg-hba-conf.html

标签: postgresql centos postgis mapserver pg-hba.conf


【解决方案1】:

根据http://www.postgresql.org/docs/current/static/auth-pg-hba-conf.htmlident 更改为md5 以供hba.conf 中的用户foo 使用

通过联系客服获取客户端的操作系统用户名 识别客户端上的服务器并检查它是否与请求的匹配 数据库用户名。身份验证只能在 TCP/IP 上使用 连接。当为本地连接指定时,对等身份验证 将被使用。有关详细信息,请参阅第 19.3.5 节。

你可以通过psql检查你使用哪个hba到你的数据库并运行show hba_file ;

【讨论】:

  • 我已经在 pg_hba.conf 中有这一行:local all all md5 但它没有帮助。
  • 从此错误:FATAL: ident authentification failed for user "foo" 你没有在 hba.conf 中打你的线。它是第一个吗?
  • 好的,我找到了答案。问题是我正在寻找启用本地访问或 127.0.0.1 主机的访问权限。实际上,我不得不像这样使用 IPv6 localhost:host foo foo ::1/128 md5。感谢您的帮助:)
猜你喜欢
  • 2021-01-10
  • 2018-10-09
  • 2015-02-17
  • 2011-02-25
  • 1970-01-01
  • 2015-12-01
  • 2018-02-04
  • 2016-03-01
  • 2016-09-29
相关资源
最近更新 更多