0

I'm on RHEL 5.4, and I've set up a Django project using PostgreSQL as the database (I've used MySQL before, but want to try something new :) ). When I run the Django test server, everything works, I can also connect trough the command line with password authentification:

psql -U myuser -h 127.0.0.1

But when I try to access my project over Apache, I get a 500 error code and this python traceback in apache's error log:

mod_wsgi (pid=7026): Exception occurred processing WSGI script '/var/www/myproject/myproject/hook.wsgi'.
Traceback (most recent call last):
  File "/var/www/myproject/myproject/src/django/django/core/handlers/wsgi.py", line 245, in __call__
    response = middleware_method(request, response)
  File "/var/www/myproject/myproject/src/django/django/contrib/sessions/middleware.py", line 36, in process_response
    request.session.save()
  File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/db.py", line 55, in save
    obj = Session(
  File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/base.py", line 152, in _get_session_key
    self._session_key = self._get_new_session_key()
  File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/base.py", line 144, in _get_new_session_key
    if not self.exists(session_key):
  File "/var/www/myproject/myproject/src/django/django/contrib/sessions/backends/db.py", line 29, in exists
    Session.objects.get(session_key=session_key)
  File "/var/www/myproject/myproject/src/django/django/db/models/manager.py", line 132, in get
    return self.get_query_set().get(*args, **kwargs)
  File "/var/www/myproject/myproject/src/django/django/db/models/query.py", line 336, in get
    num = len(clone)
  File "/var/www/myproject/myproject/src/django/django/db/models/query.py", line 81, in __len__
    self._result_cache = list(self.iterator())
  File "/var/www/myproject/myproject/src/django/django/db/models/query.py", line 269, in iterator
    for row in compiler.results_iter():
  File "/var/www/myproject/myproject/src/django/django/db/models/sql/compiler.py", line 672, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/var/www/myproject/myproject/src/django/django/db/models/sql/compiler.py", line 726, in execute_sql
    cursor = self.connection.cursor()
  File "/var/www/myproject/myproject/src/django/django/db/backends/__init__.py", line 75, in cursor
    cursor = self._cursor()
  File "/var/www/myproject/myproject/src/django/django/db/backends/postgresql_psycopg2/base.py", line 136, in _cursor
    self.connection = Database.connect(**conn_params)
OperationalError: could not connect to server: Permission denied
\tIs the server running on host "127.0.0.1" and accepting
\tTCP/IP connections on port 5432?

I checked the conn_params dictionary, it contains the correct username and password. My pg_hba.conf looks like this (I have the same exact configuration on an Ubuntu 9.04 server, where everything works peachy):

local   all         postgres                          ident
local   all         all                               md5
host    all         all         127.0.0.1/32          md5
host    all         all         ::1/128               md5

What am I doing wrong?

Benjamin Wohlwend
  • 729
  • 2
  • 7
  • 14

1 Answers1

1

One of the common mistakes is to specify password in plain text, while according to your pg_hba.conf configuration it should be supplied as md5.
Update the password in your configuration file with it's md5 and try again. You may use any MD5 generator for that, like this one.

Andrejs Cainikovs
  • 1,621
  • 1
  • 14
  • 20
  • Unfortunately, that didn't help. Also, changing the method in pg_hba.conf to "password" and using the unhashed password didn't work, neither. – Benjamin Wohlwend Sep 08 '10 at 14:38
  • I see.. Can you please increase PostgreSQL logging verbosity, restart the service, and paste some logs after authentication failure? – Andrejs Cainikovs Sep 08 '10 at 15:58