Обсуждение: FastCgi / PostgreSQL: FATAL: Ident authentication failed for user "user_name"

Поиск
Список
Период
Сортировка

FastCgi / PostgreSQL: FATAL: Ident authentication failed for user "user_name"

От
"binberati"
Дата:
Hi,

I have a strange problem running Django on a GrokThis.net shared
hosting account:

Environment:
------------------------------------------------------
Apache/2.0.59 (Unix)
mod_fastcgi/2.4.2
PostgreSQL 8.1.3
------------------------------------------------------


settings.py:
------------------------------------------------------
DATABASE_ENGINE = 'postgresql'
DATABASE_USER = 'user_name'
DATABASE_PASSWORD = '***'
------------------------------------------------------
or
------------------------------------------------------
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_USER = 'user_name'
DATABASE_PASSWORD = '***'
------------------------------------------------------


Django on FastCgi renders this error:
------------------------------------------------------
Traceback (most recent call last):
File "/home/shared/user_name/django_src/django/template/__init__.py" in
render_node
  706. result = node.render(context)
File "/home/shared/user_name/django_src/django/template/__init__.py" in
render
  757. return self.encode_output(output) File
"/home/shared/user_name/django_src/django/template/__init__.py" in
encode_output
  739. return str(output)
File "/home/shared/user_name/django_src/django/db/models/query.py" in
__repr__
  97. return repr(self._get_data())
File "/home/shared/user_name/django_src/django/db/models/query.py" in
_get_data
  430. self._result_cache = list(self.iterator()) File
"/home/shared/user_name/django_src/django/db/models/query.py" in
iterator
  170. cursor = connection.cursor()
File
"/home/shared/user_name/django_src/django/db/backends/postgresql/base.py"
in cursor
  43. self.connection = Database.connect(conn_string)

  OperationalError at /
  FATAL: Ident authentication failed for user "user_name"
------------------------------------------------------

Surprisingly, I can succesfully connect to the db using either:

- psql - PostgreSQL interactive terminal
- django-admin.py shell
- django-admin.py dbshell
- django development server
- Navicat PostgreSQL from my own pc using ssh-tunnel

The only circumstance in which I cannot seem to connect to the db is
using the FastCgi instance, although it is configured to use the same
settings file as above...


[1] Can anybody shed a light on the difference between the FastCgi
context and the ones mentioned above? I suspect it must have something
to do with pg_hba.conf... but I can't see the difference between the
contexts.

[2] How do I resolve this issue? :)


Thanks very much in advance!

Best regards,
bin


Re: FastCgi / PostgreSQL: FATAL: Ident authentication failed

От
Chris
Дата:
binberati wrote:
> Hi,
>
> I have a strange problem running Django on a GrokThis.net shared
> hosting account:
>
> Environment:
> ------------------------------------------------------
> Apache/2.0.59 (Unix)
> mod_fastcgi/2.4.2
> PostgreSQL 8.1.3
> ------------------------------------------------------
>
>
> settings.py:
> ------------------------------------------------------
> DATABASE_ENGINE = 'postgresql'
> DATABASE_USER = 'user_name'
> DATABASE_PASSWORD = '***'
> ------------------------------------------------------
> or
> ------------------------------------------------------
> DATABASE_ENGINE = 'postgresql_psycopg2'
> DATABASE_USER = 'user_name'
> DATABASE_PASSWORD = '***'
> ------------------------------------------------------
>
>
> Django on FastCgi renders this error:
> ------------------------------------------------------
> Traceback (most recent call last):
> File "/home/shared/user_name/django_src/django/template/__init__.py" in
> render_node
>   706. result = node.render(context)
> File "/home/shared/user_name/django_src/django/template/__init__.py" in
> render
>   757. return self.encode_output(output) File
> "/home/shared/user_name/django_src/django/template/__init__.py" in
> encode_output
>   739. return str(output)
> File "/home/shared/user_name/django_src/django/db/models/query.py" in
> __repr__
>   97. return repr(self._get_data())
> File "/home/shared/user_name/django_src/django/db/models/query.py" in
> _get_data
>   430. self._result_cache = list(self.iterator()) File
> "/home/shared/user_name/django_src/django/db/models/query.py" in
> iterator
>   170. cursor = connection.cursor()
> File
> "/home/shared/user_name/django_src/django/db/backends/postgresql/base.py"
> in cursor
>   43. self.connection = Database.connect(conn_string)
>
>   OperationalError at /
>   FATAL: Ident authentication failed for user "user_name"
> ------------------------------------------------------

'ident' means the username the service is running as has to be the same
as the database username (read
http://www.postgresql.org/docs/8.1/static/auth-methods.html#AUTH-IDENT).

So service is running as user "X" - the database user has to be "X" as well.

That's the first thing to check.

Second - can you connect to postgres from a shell command line?

--
Postgresql & php tutorials
http://www.designmagick.com/