[Python-es] Error a la conexion con la base de datos

Manuel A. Estevez Fernandez stvzito en gmail.com
Mar Ene 31 19:09:43 CET 2012


Saludos lista.

Estoy pasando un aplicación web sencilla que está en Django 1.2.7, la 
base de datos es PostgreSQL 9.0.6. La versión del Apache/2.2.15 (Unix) 
DAV/2 PHP/5.3.3 mod_python/3.3.1 Python/2.6.6 mod_ssl/2.2.15 
OpenSSL/1.0.0-fips mod_wsgi/3.2 mod_perl/2.0.4 Perl/v5.10.1

En la misma máquina se encuentra el Servidor Web y el servidor de base 
de datos.
Sin embargo cuando intento conectarme a la aplicación me marca un error 
de conexion.

could not connect to server: Permission denied
	Is the server running on host "localhost" and accepting
	TCP/IP connections on port 5432?


Sin embargo utilizando el cliente psql, puedo conectarme sin problemas, 
de igual forma puedo accesar a la aplicación levantando el servidor de 
desarrollo con la instrucción
./manage.py runserver

lo que me hace pensar que tal vez estoy omitiendo alguna configuración 
en mis archivos, a continuación les muestro las secciones configuradas 
en cada uno de los archivos. O alguna otra parte que no haya considerado.

La configuración de mi archivo de settings del proyecto es el siguiente 
para la conexión:


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

Se que también hay que configurar el acceso por parte del servidor de 
postgresql ( archivo pg_hba.conf y postgresql.conf )

# TYPE  DATABASE        USER            CIDR-ADDRESS            METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    almacen_facturas dba            10.10.50.171/24         trust
host    all             all             127.0.0.1/32            trust
host    all             dba             10.10.50.0/24           md5

y

listen_addresses = '*'

Esta es mi configuración del archivo WSGI:

import os
import sys

sys.path.append('/var/www/django/visor/')
sys.path.append('/var/www/django/visor/facturas/')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

y por último esta es la sección correspondiente al archivo de 
configuración del apache

<Location "/facturas/">
         SetHandler python-program
         PythonHandler django.core.handlers.modpython
         SetEnv PYTHON_EGG_CACHE "/var/cache/www/pythoneggs"
         SetEnv DJANGO_SETTINGS_MODULE settings
         PythonDebug Off
         PythonPath "['/var/www/django/visor','/var/www'] + sys.path"
</Location>


Espero y puedan ayudarme.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120131/8becb286/attachment.html>


Más información sobre la lista de distribución Python-es