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
    • 最新
    • 标签
主页 / dba / 问题 / 36740
Accepted
Jay Guarneri
Jay Guarneri
Asked: 2013-03-14 13:12:27 +0800 CST2013-03-14 13:12:27 +0800 CST 2013-03-14 13:12:27 +0800 CST

带有“信任”选项的 QGIS PostGIS 身份验证失败

  • 772

我正在尝试在 Ubuntu 12.04 上使用 PostgreSQL 9.1 设​​置 PostGIS 数据库。我已经设置了数据库,创建了一个没有密码的用户帐户“jay”,在第 2.5 节之后添加了空间功能,并将我的 pg_hba.conf 设置为local:

# "local" is for Unix domain socket connections only
local   all             all                                     trust

我可以使用 pgAdminIII 连接到数据库,无需密码即可连接,但是当我尝试通过 PostGIS 或 QuantumGIS 连接时连接失败。这是 QuantumGIS 中连接窗口的屏幕截图:
PostGIS 连接

稍微研究一下这个问题,我遇到了这篇文章,它让我尝试使用psql -U jay -h localhost gis. psql提示我输入密码,我按回车,因为我没有设置密码,它返回psql: fe_sendauth: no password supplied。我又试了一次,这次提供了我的 Ubuntu 用户密码,它返回了

psql: FATAL:  password authentication failed for user "jay"
FATAL:  password authentication failed for user "jay"

然后我尝试设置使用密码jay,ALTER USER并在提示符中输入此密码,但也失败了。显然,我无法连接。但是,我无法确定下一步要采取哪些故障排除步骤。

有任何想法吗?

postgresql postgis
  • 3 3 个回答
  • 2630 Views

3 个回答

  • Voted
  1. Best Answer
    Daniel Vérité
    2013-03-16T08:37:10+08:002013-03-16T08:37:10+08:00

    只是不要在连接对话框中将数据库字段留空。

    当留空时,它将尝试连接到以您的操作系统登录名命名的数据库,在您的情况下可能不存在该数据库。

    Host字段应留空以使用 Unix 域套接字连接,正如问题中显示的片段所暗示的那样pg_hba.conf。

    当您localhost输入此字段时,它会尝试一个不是术语中所称的 TCP 连接local,pg_hba.conf因此该条目local all all trust将与此类连接不匹配。

    • 3
  2. katahdin
    2013-03-14T14:40:15+08:002013-03-14T14:40:15+08:00

    首先尝试以 postgres 用户身份连接到数据库

    jay@machine$ sudo su postgres
    postgres@machine$ psql
    

    然后创建一个新用户,如果你还没有创建一个数据库,为什么不创建一个数据库

    postgres=# CREATE USER jay WITH password 'donttell';
    postgres=# CREATE DATABASE gis;
    postgres=# \q
    

    您现在应该能够以自己的身份连接

    jay@machine$ psql gis
    

    编辑:

    另外,在你的 postgresql.conf 文件中查找

    listen_addresses = '*'      # what IP address(es) to listen on;
    

    如果listen_address被注释掉,那么 postgresql 将不会响应任何请求,或者它可能被设置为只听 localhost 以外的东西。'*' 告诉它监听来自任何地址的请求。

    编辑2:

    此外,尝试使用 0.0.0.0 而不是 localhost 作为主机设置。

    • 2
  3. Evan Carroll
    2017-01-12T21:41:35+08:002017-01-12T21:41:35+08:00

    我有类似的问题,但我的端口号已关闭这是我的原始帖子

    • 我认为 PgAdmin 正在通过 UNIX 套接字进行连接。他们获得不同的身份验证pg_hba.conf
    • 您没有显示 QGis 的错误。我认为这是一个不同的问题。它试图通过 UNIX 套接字连接,但端口错误。

    无需用户名和密码即可连接到 qgis。

    看来您的端口可能是错误的。请记住,Ubuntu/Debian 编译 psql 以连接到与上游默认端口 5432 不同的端口。他们这样做是为了让您可以同时运行不同安装版本的服务器。不同的客户端也被编译到不同的默认端口。不幸的是,Debian/Ubuntu 的 qgis 没有使用最新服务器的匹配默认端口进行编译,并假定默认端口为 5432。使用 psql 连接并运行SHOW port;或检查--help以找到您的 psql 连接到的默认端口psql --help | grep PORT。您必须将此端口硬设置为 qgis,因为 qgis 默认值 5432 可能不适用。

    在这里,我是我的连接屏幕,以证明它有效。请注意,我的端口硬设置为 5433,而不是 5432。QGIS中的连接

    • 0

相关问题

  • 我可以在使用数据库后激活 PITR 吗?

  • 运行时间偏移延迟复制的最佳实践

  • 存储过程可以防止 SQL 注入吗?

  • PostgreSQL 中 UniProt 的生物序列

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

Sidebar

Stats

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

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    授予用户对所有表的访问权限

    • 5 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve