我在Django项目PostgreSQL的设置越来越问题。
这里是我的setting.py数据库设置
DATABASES = {
'default':{
'ENGINE':'django.db.backends.postgresql_psycopg2', # '.postgresql_psycopg2', '.mysql', or '.oracle'
'NAME':'indivo', # Required to be non-empty string
'USER':'indivo', # Required to be non-empty string
'PASSWORD':'ritvik',
'HOST':'', # Set to empty string for localhost.
'PORT':'', # Set to empty string for default.
},
}
现在,在Postgres后端我做了什么是。
rohit@rohit-desktop:~$ sudo su - postgres
postgres@rohit-desktop:~$ createuser --superuser indivo # create a super user indivo
postgres@rohit-desktop:~$ psql # open psql terminal
psql (9.1.8)
Type "help" for help.
postgres=# \password indivo # set the password ritvik
Enter new password:
Enter it again:
postgres=# \q #logout
postgres@rohit-desktop:~$ createdb -U indivo -O indivo indivo #create db indivo
不幸的是,当我试图执行syncdb我得到的错误。
psycopg2.OperationalError: FATAL: Peer authentication failed for user "indivo"
请帮我出什么可能我做错了这里。
我有类似的问题,并解决它这个答案通过添加localhost
到数据库HOST
settings.py中设置的,所以你的数据库的设置应该是这样的:
DATABASES = {
'default':{
'ENGINE':'django.db.backends.postgresql_psycopg2', # '.postgresql_psycopg2', '.mysql', or '.oracle'
'NAME':'indivo', # Required to be non-empty string
'USER':'indivo', # Required to be non-empty string
'PASSWORD':'ritvik',
'HOST':'localhost', # Set to empty string for localhost.
'PORT':'', # Set to empty string for default.
},
}
默认情况下,在许多Linux发行版,客户端身份验证设置为“对等”的Unix套接字连接到数据库。 这是在设定pg_hba.conf
PostgreSQL的配置文件。 该psycopg2 Python库文档状态:
- *主机*:数据库主机地址(默认为UNIX插座如果不提供)
所以,如果你离开主机选项空白,你的脚本将尝试连接并使用Unix的用户名:认证密码。 要解决,您可以:
- 明确设置的“主机”选项为127.0.0.1到您粘贴到你的问题的配置代码。
- 修改
pg_hba.conf
文件,以便它使用存储在postrgres DB用户存储用户名和密码来使用套接字连接的md5(不推荐,因为这可能会破坏系统的用户身份验证)
您需要设置pg_hba.conf
使用md5
认证用户,db和源的兴趣IP。 见客户端身份验证文件的章节。
搜索pg_hba.conf
堆栈溢出的万吨以上信息。
我也被Django项目设置PostgreSQL数据库的过程中面临着类似的问题。
我的系统是运行RHEL 7 CentOS的PostgreSQL的版本10.我搜索了很多,但couldnot找到真正发生了什么,直到我看到日志在/var/lib/pqsql/10/data/log/postgresql*.log
二○一七年十一月一十日00:31:40.499 IST [14129] DETAIL:连接匹配的pg_hba.conf线85: “承载所有所有:: 1/128 IDENT”
所以,我只是改变了特定的行文件/var/lib/pgsql/10/data/pg_hba.conf:从主机的所有一切:: 1/128的ident
至
主机上的所有一切:: 1/128 MD5
与我能够创建数据库和表使用manage.py迁移
感谢所有谁帮我找到这个解决方案。 PostgreSQL的客户端验证尤其是@juliocesar和官方文件
文章来源: Django setting : psycopg2.OperationalError: FATAL: Peer authentication failed for user “indivo”