我开始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
}
}
答案 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
以下是一些可能会有所帮助的链接: