【发布时间】:2012-12-19 23:24:08
【问题描述】:
两台服务器都是我主机上的 VirtualBox 服务器,除了这个问题(我不太了解排除网络作为潜在原因)。
关于数据库服务器:
- 我的 IP 表允许端口
5432上的所有 TCP 访问 - 我创建了一个 Postgres 数据库,可以使用
psqlshell 毫无问题地打开和查询,使用foo1用户 - 我已经安装了 psychopg2
- 我的 Django 应用程序配置了默认数据库(实际上是唯一配置的数据库)以使用我的服务器的 IP 端口
5432,使用foo1用户,密码设置为foo1'密码 - 我在 Ubuntu 12.04.1 上使用 Postgres 9.2 以及最新的 Psychopg2 和 Django 1.5 beta
该错误来自于 Psychopg2 的初始连接尝试,并且没有错误消息(否则,我可能不必问这个)。很简单,OperationalError。所以,更具体地说,我的问题是:我在该列表中遗漏了哪些更明显的事情,这可能会导致这个问题。
Traceback - 来自 uWSGI 日志,所以没有上下文 :(
# ... 10 + frames above here ommitted, since the they amount to
# essentially MyModel.objects.get(pk=1)
File "/var/www/myapp/deps/current/venv/local/lib/python2.7/site-packages/django/db/backends/__init__.py", line 316, in cursor
cursor = util.CursorWrapper(self._cursor(), self)
File "/var/www/myapp/deps/current/venv/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 210, in _cursor
self.connection = self.get_new_connection(conn_params)
File "/var/www/myapp/deps/current/venv/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 183, in get_new_connection
return Database.connect(**conn_params)
File "/var/www/myapp/deps/current/venv/local/lib/python2.7/site-packages/psycopg2/__init__.py", line 178, in connect
return _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError
【问题讨论】:
-
你能
psql从运行 django 的虚拟机到运行 Postgres 的虚拟机上的数据库吗? -
@MattBall - 我不知道甚至可以做这样的事情。我没有在应用服务器上安装 Postgres - 我可以安装 just
psqlshell,如果可以,我如何连接到另一个虚拟机上的服务器? (提前致谢) -
这确实属于一个完全独立的问答,可能在不同的 SE 网站上,但我会咬一口。我不记得你是否可以只安装外壳。我认为你可以,但即使不是,它也不应该真的很重要。使用包管理器来安装它。 RTFD,但 tl;dr 使用
-h选项(如psql -h somehost)来指定运行 db 服务器的主机。 -
@MattBall - 谢谢 - 我会试一试
标签: django postgresql ubuntu database-connection