【发布时间】:2012-06-26 20:58:11
【问题描述】:
我的本地主机上有一个 postgres 数据库,无需密码即可访问
$ psql -d mwt
psql (8.4.12)
Type "help" for help.
mwt=# SELECT * from vatid;
id | requester_vatid |...
-----+-----------------|...
1719 | IT00766780266 |...
我想从 django 访问该数据库。所以我输入了DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mwt',
'USER': 'shaoran',
'HOST': 'localhost'
}
}
由于我不需要密码来访问我的测试数据库,因此我没有在设置中提供任何 PASSWORD 值。
$ ./manage.py shell
>>> from polls.models import Vatid
>>> Vatid.objects.all()
connection_factory=connection_factory, async=async)
OperationalError: fe_sendauth: no password supplied
我尝试使用PASSWORD: '',但收到相同的错误消息。我尝试使用PASSWORD: None,但这也无济于事。
我一直在搜索有关此的 django 文档,但找不到任何有用的东西。可以配置django.db.backends.postgresql_psycopg2接受空密码吗?
【问题讨论】:
-
您可以通过
localhost或 Unix 域套接字进行配置。 Here 解释了这两种情况的工作原理。 -
@jojo 非常感谢您的评论。很久以前,我什至不记得我做了什么来修复它,反正这个项目早就死了。
-
希望它对其他人有用!与上述项目相反,这种配置的潜在缺陷仍然存在,这两个事实都令人遗憾。
-
@jojo 基于对所有答案和问题的赞成票数,这个问题肯定也帮助了其他人。现在我记得,问题是(正如你在回答中所说)我使用了
HOST参数。
标签: python django postgresql psycopg2