django - 无法使用普通的 Ubuntu Linux 用户访问 Django 中的 PostgreSQL 数据库

标签 django postgresql ubuntu

我正在学习在 Ubuntu 11.10 中一起使用 PostgreSQLDjango,我发现我需要切换到我在安装 PostgreSQL 时创建的用户 ("postgres") 在终端中(通过 "sudo su postgres")创建并访问数据库以在 Django 中使用。不幸的是,“postgres” 用户在我的本地文件系统上没有文件写入权限,所以当我尝试做某些事情时,比如将模型对象添加到具有图像字段的数据库中,我我被阻止了。但是,如果我在终端中切换到我的普通 Ubuntu 用户名并尝试访问我在 Django 开发服务器上的管理站点,我会收到如下错误:

OperationalError at /admin/

FATAL:  Peer authentication failed for user "postgres"

Request Method:     GET
Request URL:    http://127.0.0.1:8000/admin/
Django Version:     1.3.1
Exception Type:     OperationalError
Exception Value:    

FATAL:  Peer authentication failed for user "postgres"

Exception Location:     /usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py in _cursor, line 140
Python Executable:  /usr/bin/python
Python Version:     2.7.2

我正在尝试阅读 PostgreSQL 文档,让我的普通用户可以访问我为我的 Django 项目创建的数据库,但我无法理解,因为我不了解 PostgreSQL 之间的关系角色/用户和 Ubuntu 用户。有人可以向我解释一下如何让我的普通 Ubuntu 用户名访问我在 PostgreSQL 中的数据库吗?我可能需要一个特定的指令列表,因为我已经尝试使用 PostgreSQL 文档将其拼凑在一起,但我完全迷失了方向。

最佳答案

cfedermann 是正确的;这是问题的副本:

Django connection to PostgreSQL: "Peer authentication failed"

解决方法是一样的。在我的 Django 项目的“settings.py”文件中,在 DATABASES 部分下,我的“HOST”设置为空字符串,因为那里有一个内置注释(意思是 Django 开发人员编写的注释)字面意思说,“为本地主机设置为空字符串。”显然这不是真的,因为只有在我明确输入“localhost”后,我才能使用我的默认 Linux 用户名连接到我的 psql 数据库。

我想这里的教训是,对于所有尝试在开发中将它与 postgresql 一起使用的 Django 其他新手,请确保在“settings.py”文件中输入“LOCALHOST”,否则你不会能够连接到存储在您自己机器上的 psql 数据库!

再次感谢 cfedermann 指出我的答案。

关于django - 无法使用普通的 Ubuntu Linux 用户访问 Django 中的 PostgreSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186672/

相关文章:

python - 如何对 Django 中的所有模型对象进行向后关系查找?

带有太多默认值参数的 Python 函数,如何使它更干净?

sql - 使用 PostgreSQL 快速查找相似字符串

ruby-on-rails - 通过 2 个不同的关联模型进行 Rails 查询

c++ - posix_fadvise 不工作

node.js - 无法使用 nvm 或 apt get install (wsl2 ubuntu) 安装 node/npm

ruby-on-rails - 使用 RVM 为 Ruby 创建符号链接(symbolic link)

python - Django休息框架: Serializing a model and grouping by a foreign key for other data

django - 如何在 django REST 中禁用 IE11 缓存

mysql - 分页和并发更新