使用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' } } 
 由于我不需要密码来访问我的testing数据库,我没有在设置中提供任何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的文档,但我找不到任何有用的东西。 有可能configurationdjango.db.backends.postgresql_psycopg2接受空密码? 
 检查你的pg_hba.conf以允许用户shaoran允许从localhost连接,然后在Django设置中提供shaoran的密码或者在pg_hba.conf信任用户 
 可以通过psql连接的事实是因为psql -d mwt使用了一些在pg_hba.conf中设置为可信的默认连接值。 例如,在我的机器上,默认主机是local socket而不是localhost 
令人惊讶的是,答案是根本不指定主机。 如果你这样做,
 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'mwt', } } 
 然后psycopg2将以psql相同的方式使用Unix套接字进行连接。 当你指定一个HOST ,psycopg2将连接到需要密码的TCP / IP。 
 为了避免在Django settings.py使用密码,请将md5更改为trust pg_hba.conf这一行: 
 host all all 127.0.0.1/32 trust 
要详细了解postgres安全configuration,请阅读本文档。
要find这个文件:
 sudo -u postgres psql -c 'SHOW hba_file;'