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

Peer authentication failed for user “geo” geodjango tutorial postgresql error

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

1
django.db.utils.OperationalError: FATAL:  Peer authentication failed FOR USER"geo"

我是geodjango和postgresql和postgis的新手。 我已经完成了postgresql和postgis的全新安装。

我在doc中创建了geo用户。

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

我无法弄清楚如何解决它。

这是我的设置:

1
2
3
4
5
6
7
8
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
 }

}


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

sudo -i -u postgres

然后:

psql

然后:

CREATE USER username;

ALTER ROLE username WITH CREATEDB;

ALTER USER username WITH ENCRYPTED PASSWORD 'password';

我有这样的设置:

1
2
3
4
5
6
7
8
DATABASES = {
'default': {
     'ENGINE': 'django.contrib.gis.db.backends.postgis',
     'NAME': 'geodjango',
     'USER': 'username',
     'HOST': 'localhost',
     'PASSWORD': '****',
 }

}


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

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

以postgres用户身份登录:

1
sudo su - postgres

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

1
emacs -nw DATA/pg_hba.conf

改变访问限制:这里变得棘手。如果您有一个postgres-Installation可以播放和开发(不在生产??中),您可以设置访问'trust':

更改:

1
host    ALL             ALL             0.0.0.0/0            ident

至:

1
host    ALL             ALL             0.0.0.0/0            trust

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

1
host    ALL             ALL             0.0.0.0/0            md5

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

链接到文档

关于SO的问题