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的问题