Не удается подключиться к базе данных Postgres с помощью стека Bitnami Django - PullRequest
1 голос
/ 23 мая 2011

Я продолжаю сталкиваться с проблемой невозможности подключения к базе данных:

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”?

Я немного прочитал, и кажется, что это довольно распространенная проблемачто большинство людей исправляют, проверяя правильность порта, то есть меняя 5432 на 5433 в их файле setup.py.Но, похоже, это не моя проблема - в каталоге / opt / bitnami / postgresql я вижу .s.PGSQL.5432.Я могу войти в PSQL и, кажется, работает правильно.Я думаю, что имя базы данных по умолчанию - postgresql, но я также попробовал его с именем djangostack, и оно тоже не сработало.Информация о моей базе данных в файле setting.py в Django выглядит следующим образом:

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 Ответ

3 голосов
/ 24 мая 2011

Итак, сокет PostgreSQL находится в /opt/bitnami/postgresql, но ваш libpq (библиотека C, в которую входит psycopg2) ищет сокет в /tmp, верно?Попробуйте изменить настройку HOST так, чтобы она указала на правильное расположение сокета :

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

Или это :

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

возможно, вы захотите изменить пароль PostgreSQL.

...