用户" geo"对等身份验证失败geodjango教程postgresql错误

时间:2015-05-17 23:36:06

标签: postgresql authentication postgis geodjango

我开始geodjango教程。我复制并过去了所有事情,但我仍然得到错误。

django.db.utils.OperationalError: FATAL:  Peer authentication failed for user "geo"

我是geodjango和postgresql和postgis的新手。我已经重新安装了postgresql和postgis。

我在文档中创建地理位置用户。

  

$ sudo su - postgres
  $ createuser --createdb geo
  $ exit

我无法解决如何解决问题。

以下是我的设置:

DATABASES = {
'default': {
     'ENGINE': 'django.contrib.gis.db.backends.postgis',
     'NAME': 'geodjango',
     'USER': 'geo',
     # 'HOST': 'localhost', I tried this but didn't work
     # 'PASSWORD': '***', I tried it too using a password but didn't work
 }

}

2 个答案:

答案 0 :(得分:1)

所以我找到了一个解决方案,geodjango教程无效。

  

sudo -i -u postgres

然后:

  

的psql

然后:

  

创建用户名;

     

ALTER ROLE用户名WITH CREATEDB;

     

ALTER USER username WITH ENCRYPTED PASSWORD'password';

我的设置如下:

DATABASES = {
'default': {
     'ENGINE': 'django.contrib.gis.db.backends.postgis',
     'NAME': 'geodjango',
     'USER': 'username',
     'HOST': 'localhost',
     'PASSWORD': '****',
 }

}

答案 1 :(得分:0)

对等身份验证错误通常是由错误的pg_hba.conf文件引起的。您的文件中有条目会阻止您的用户执行查询。

pg_hba.conf位于postgres-data目录中,定义了postgres-installation的基本配置。在您的情况下,数据库获取请求,但拒绝处理,因为您的用户未经过身份验证以执行请求。

以postgres用户身份登录:

sudo su - postgres

使用您选择的编辑器(我使用emacs)编辑文件:

emacs -nw data/pg_hba.conf

更改访问限制:这里变得棘手。如果你有一个postgres-Installation可以播放和开发(不在制作中),你可以设置访问“信任”:

变化:

host    all             all             0.0.0.0/0            ident

为:

host    all             all             0.0.0.0/0            trust

但是,如果您在制作中使用数据库,请勿将其设置为信任!。而是将其配置为检查密码/哈希值。

host    all             all             0.0.0.0/0            md5

以下是一些可能会有所帮助的链接:

Link to the docs

Question on SO