两台服务器都是我的主机上的 VirtualBox 服务器,我能够在它们之间建立网络(从一个到另一个的 ssh 等),除了这个问题(我对排除网络的了解不够作为潜在原因)。
与数据库服务器有关:
- 我的 IP 表允许端口上的所有 TCP 访问
5432
- 我创建了一个 Postgres 数据库,可以使用
psql
shell 毫无问题地打开和查询,使用foo1
用户 - 我已经安装了psychpg2
- 我的 Django 应用程序配置了默认数据库(实际上是唯一配置的数据库)以使用我的服务器的 IP 在 port
5432
,使用foo1
用户,密码设置为foo1
's password - 我在 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