无法使用Bitnami Django堆栈连接到Postgres数据库

时间:2011-05-23 19:52:02

标签: django postgresql bitnami

我一直遇到无法连接到数据库的问题:

psycopg2.OperationalError: could not connect to server: No such file or directory

Is the server running locally and accepting connections on Unix domain socket “/tmp/.s.PGSQL.5432”?

我做了一些阅读,看起来这是一个非常普遍的问题,大多数人通过检查端口是否正确来修复,即在setup.py中将5432更改为5433。但这似乎不是我的问题 - 在/ opt / bitnami / postgresql目录中,我看到.s.PGSQL.5432。我可以登录到psql,它似乎正常工作。我认为默认的数据库名称是postgresql,但我也尝试使用名为djangostack的名称,但它也没有用。我在Django的setting.py中的数据库信息如下所示:

DATABASES = {
'default': {
    'ENGINE': 'postgresql_psycopg2', #'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
    'NAME': 'postgres',                      # Or path to database file if using sqlite3.
    'USER': 'postgres',                      # Not used with sqlite3.
    'PASSWORD': 'bitnami',                  # Not used with sqlite3.
    'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '5432',                      # Set to empty string for default. Not used with sqlite3.
}

我查看/ tmp /目录中没有任何内容,隐藏或其他内容。应该有吗?有谁知道我做错了什么?我愚蠢地覆盖了原来的示例项目,所以我无法看到那里的设置。

非常感谢, 亚历

1 个答案:

答案 0 :(得分:3)

所以PostgreSQL套接字在/opt/bitnami/postgresql,但你的libpqpsycopg2包装的C库)正在寻找/tmp中的套接字,对吧?尝试更改HOST setting to point at the proper socket location

'default': {
    'ENGINE':   'postgresql_psycopg2',
    'NAME':     'postgres',
    'USER':     'postgres'
    'PASSWORD': 'bitnami',
    'HOST':     '/opt/bitnami/postgresql/.s.PGSQL.5432', # <-------
    'PORT':     '5432',
}

Or this

'default': {
    'ENGINE':   'postgresql_psycopg2',
    'NAME':     'postgres',
    'USER':     'postgres'
    'PASSWORD': 'bitnami',
    'HOST':     '/opt/bitnami/postgresql', # <-------
    'PORT':     '5432',
}

您可能也想更改PostgreSQL密码。