在不使用密码的情况下使用心理复制2连接到数据库

2022-04-14 00:00:00 python postgresql django psycopg2

问题描述

我的本地主机上有一个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配置为接受空密码?


解决方案

检查您的pg_hba.conf以允许用户shaoranlocalhost连接,然后在Django设置中提供shaoran的密码或在pg_hba.conf

中信任用户 您可以通过psql进行连接是因为psql -d mwt使用了一些在pg_hba.conf中设置为受信任的默认连接值。例如,在我的计算机上,默认主机是local socket而不是localhost

相关文章