Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

PostgreSQL: Instalar el motor de bases de datos PostgreSQL en Linux Debian 5
Bases de Datos


Mostramos cómo instalar el motor de base de datos gratuito y open source PostgreSQL 9 en el sistema operativo GNU Linux Debian 5. Realizamos la instalación en su modalidad de línea de comandos (usando el comando linux apt-get install), aunque también es posible instalarlo en modo gráfico. Explicamos cómo instalar pgAdmin en GNU Linux Debian 5 y en Microsoft Windows 7 para administrar PostgreSQL 9.



 

Requisitos iniciales para PostgreSQL en Linux

En primer lugar necesitaremos un equipo con el sistema operativo GNU Linux Debian 5, también podremos usar un sistema operativo virtualizado, como indicamos en el siguiente artículo:

Cómo instalar GNU Linux Debian 5.0.7 virtualizado en VMware Workstation

Para realizar la descarga de los ficheros necesarios para la instalación de PostgreSQL necesitaremos disponer de conexión a Internet.

Lógicamente, si queremos que el quipo servidor de bases de datos PostgreSQL esté disponible para todos los equipos clientes de la red necesitaremos que el equipo disponga de tarjeta de red y conexión de red, a ser posible con IP fija (no DHCP).

 

 

Instalar PostgreSQL 9 en GNU Linux Debian 5

Para instalar el motor de base de datos PostgreSQL en GNU Linux Debian 5, en primer lugar abriremos una ventana de terminal desde "Aplicaciones" - "Accesorios" - "Terminal":

AjpdSoft Instalar PostgreSQL 9 en GNU Linux Debian 5

Introduciremos el siguiente comando linux:

sudo apt-get install postgresql

Para ver el resultado de la ejecución del comando pulsa aquí.

Responderemos "s" a la pregunta "¿Desea continuar?" y pulsaremos INTRO:

AjpdSoft Instalar PostgreSQL 9 en GNU Linux Debian 5

Ahora es muy recomendable cambiar la contraseña del superusuario postgres del servidor PostgreSQL instalado (el que crea el programa de instalación), para ello, en primer lugar, cambiaremos la contraseña del usuario postgres del sistema operativo, usuario que ha creado el programa de instalación, para ello ejecutaremos el comando linux:

sudo passwd postgres

(nos pedirá la contraseña dos veces para el usuario postgres del sistema operativo).

A continuación accederemos con este usuario en el shell del terminal, para ello introduciremos el comando:

su postgres

(nos pedirá la contraseña del usuario postgres, la que acabamos de introducir)

A continuación ejecutaremos la aplicación de consola psql, para ello introduciremos (con el usuario postgres) el comando linux:

psql

Una vez dentro de la consola de psql introduciremos el siguiente comando para cambiar la contraseña del usuario postgres de PostgreSQL:

alter user postgres with password '0000';

Donde '0000' será la contraseña para el usuario postgres.

AjpdSoft Instalar PostgreSQL 9 en GNU Linux Debian 5

Ya podremos disponer del servidor de bases de datos PostgreSQL. Si necesitamos detener o reiniciar el servicio de PostgreSQL ejecutaremos el comando:

sudo /etc/init.d/postgres restart

 

 

Configurar PostgreSQL en Linux Debian para permitir conexiones externas

Para permitir que los equipos clientes puedan conectarse al servidor de PostgreSQL seguiremos los siguientes pasos:

1. Editaremos el fichero /etc/postgresql/9.0/main/postgresql.conf con el comando:

sudo nano /etc/postgresql/9.0/main/postgresql.conf

Descomentaremos o añadiremos la línea:

listen_addresses = '*'

AjpdSoft Configurar PostgreSQL en Linux Debian para permitir conexiones externas

Y también la línea:

password_encryption = on

Guardaremos los cambios pulsando "Control + O" y cerraremos nano pulsando "Control - X":

AjpdSoft Configurar PostgreSQL en Linux Debian para permitir conexiones externas

A continuación editaremos también el fichero:

/etc/postgresql/9.0/main/pg_hba.conf

Con el comando:

sudo nano /etc/postgresql/9.0/main/pg_hba.conf

En el ejemplo, daremos permisos de acceso al servidor PostgreSQL al equipo de la red LAN con IP 192.168.1.2, en nuestro caso se trata de un equipo con sistema operativo Microsoft Windows 7. Para ello añadiremos la siguiente línea al final del fichero:

host all all 192.168.1.2/32 md5

Guardaremos los cambios (Control + O) y cerraremos nano (Control + X):

AjpdSoft Configurar PostgreSQL en Linux Debian para permitir conexiones externas

Reiniciaremos el servicio o demonio (daemon) de PostgreSQL para que los cambios tengan efecto (teniendo en cuenta que se desconectarán todas las posibles conexión a PostgreSQL de forma momentánea):

sudo /etc/init.d/postgresql

 

Instalar pgAdmin para administrar el servidor PostgreSQL tanto en Linux como en Windows

Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Aunque no es necesario para nuestro servidor de bases de datos PostgreSQL sí es recomendable instalar pgAdmin, se trata de una herramienta gráfica de administración de PostgreSQL, desde la que podremos crear tablas, usuarios, bases de datos, ejecutar consultas SQL, copias de seguridad, etc. Para instalar pgAdmin, desde la ventana de terminal, introduciremos el siguiente comando linux:

sudo apt-get install pgadmin3

Para ver el resultado de la ejecución del comando pulsa aquí.

Responderemos "s" a la pregunta "¿Desea continuar?" y pulsaremos INTRO:

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Tras la instalación de pgAdmin, lo abriremos desde el menú "Aplicaciones" - "Programación" - "gpAdmin III":

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

 

Añadiremos una nueva conexión desde el menú "Archivo" - "Añadir Servidor":

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Introduciremos los datos de conexión, sobre todo el "Servidor" (IP o hostname del equipo con PostgreSQL), el "Nombre de Usuario" (por defecto "postgres" y la contraseña para este usuario (la que hemos establecido en el paso anterior). Pulsaremos "Aceptar" para realizar la conexión:

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Nos indicará, si hemos marcado la opción de "Almacenar Contraseña" que lacontrase se guardará en formato texto plano. Pulsaremos "Aceptar":

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Y ya tendremos acceso a la administración de nuestro servidor de bases de datos PostgreSQL en GNU Linux Debian 5.

Nota importante: la versión 1.10.5 de pgAdmin III (que es la disponible en las descargas de apt-get de Linux Debian actualmente) no es compatible y no puede administrar el motor de base de datos PostgreSQL versión 9, que es la que hemos instalado. Por ello, si intentamos acceder al servidor nos mostrará este mensaje de aviso:

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Con el texto: "Advertencia: esta versión de pgAdmin ha sido sólo probada con PostgreSQL versión 8.4 y anteriores y puede no funcionar correctamente con este servidor. Por favor actualice pgAdmin".

Y este otro error:

AjpdSoft Instalar pgAdmin en GNU Linux Debian para administrar PostgreSQL

Con el texto: "Ha ocurrido un error: ERROR: no existe la columna "datconfig" LÍNEA 1: ...b.dattablespaces AS spcoid, spcname, datallowconn, datconfig...".

Puesto que, de momento, no hemos encontrado la versión adecuada de pgAdmin para Linux Debian, hemos instalado pgAdmin en un equipo con Microsoft Windows 7, hemos instalado la versión 1.12.2 que sí es compatible con PostgreSQL. En breve estará disponible la versión de pgAdmin para Linux Debian y PostgreSQL 9.

 

Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Para instalar pgAdmin 1.12.2 en Microsoft Windows 7 descargaremos el fichero de instalación desde:

http://www.pgadmin.org/download/windows.php

Descargaremos la versión más reciente de pgAdmin para Windows, en nuestro caso la 1.12.2, el fichero pgadmin3-1.12.2.zip (de 14,1MB). Una vez descargado lo descomprimiremos y ejecutaremos el fichero de instalación "pgadmin3.msi":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Pulsaremos "Next":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Leeremos los términos de licencia, si estamos de acuerdo marcaremos "I accept the terms in the License Agreement" y pulsaremos "Next":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Pulsaremos "Next" en la siguiente ventana, salvo que queramos escoger otra ubicación de los ficheros de instalación, en cuyo caso pulsaremos en "Browse":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Pulsaremos "Install":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Puede que nos muestre un mensaje de aviso el Control de cuentas de usuario, pulsaremos "Sí":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Pulsaremos "Finish" y ya tendremos instalado pgAdmin III 1.12.2:

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

A continuación lo abriremos desde el botón Iniciar y el grupo de programas "pgAdmin III 1.12". Para conectarnos al servidor PostgreSQL en GNU Linux Debian pulsaremos el botón "Añadir una conexión a un servidor". Introduciremos los datos de conexión:

  • Nombre: nombre descriptivo de la conexión, por si tenemos varias, por ejemplo "Conexión BDAjpdSoft PostgreSQL".
  • Servidor: hostname (nombre de red) o dirección IP del servidor con PostgreSQL y GNU Linux Debian.
  • Puerto: el puerto por defecto para PostgreSQL, el 5432, salvo que lo hayamos cambiado.
  • BD de Mantenimiento: nombre de la base de datos de PostgreSQL, normalmente "postgres".
  • Nombre de Usuario: nombre del usuario de PostgreSQL con permisos suficientes, por defecto "postgres".
  • Contraseña: contraseña establecida en la instalación de PostgreSQL para el usuario anterior.

Pulsaremos "OK" para conectarnos al servidor:

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Si todo es correcto pgAdmin III realizará la conexión con el servidor PostgreSQL con Linux Debian y nos mostrará las bases de datos, tablespaces, roles de grupos, etc. del servidor:

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Si queremos crear una nueva base de datos, pulsaremos con el botón derecho del ratón sobre "Bases de Datos" y seleccionaremos "Nueva Base de Datos":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Introduciremos los datos para la nueva base de datos, al menos el "Nombre", por ejemplo "bdajpdsoft" y el "Propietario", por defecto "postgres", pulsaremos "OK" para crearla:

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

La consulta SQL para crear una base de datos en PostgreSQL:

CREATE DATABASE bdajpdsoft
WITH ENCODING='UTF8'
OWNER=postgres
CONNECTION LIMIT=-1;

Podremos crear un nuevo esquema para la base de datos anterior, para ello, desde "Esquemas" de la base de datos anterior pulsaremos con el botón derecho y seleccionaremos "Nuevo esquema". Introduciremos los datos, al menos el "Nombre", por ejemplo "ajpdsoft":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

La consulta SQL para crear un esquema en PostgreSQL:

CREATE SCHEMA ajpdsoft
AUTHORIZATION postgres;

En el esquema creado podremos añadir cualquier objeto que deseemos: tablas, secuencias, vistas, etc. Para crear una nueva tabla pulsaremos con el botón derecho del ratón sobre el esquema creado y seleccionaremos "Nuevo objeto" - "Nueva Tabla":

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Introduciremos el nombre de la tabla, por ejemplo "factura", las columnas que contendrá con su tipo de datos y las restricciones (claves primarias y foráneas, índices):

AjpdSoft Instalar pgAdmin en Microsoft Windows 7 para administrar PostgreSQL

Consulta SQL de ejemplo para crear una tabla en PostgreSQL:

CREATE TABLE ajpdsoft.factura
(
codigo serial,
fecha date,
codigocliente integer,
importe money,
observacion text,
CONSTRAINT pk_factura PRIMARY KEY (codigo)
)
WITH (
OIDS = FALSE
)
;
ALTER TABLE ajpdsoft.factura OWNER TO postgres;

 

 

Anexo

  • Resultado de: sudo apt-get install postgresql

ajpdsoft@pcdebian:~$ sudo apt-get install postgresql
[sudo] password for ajpdsoft:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes extras:
libpq5 postgresql-9.0 postgresql-client-9.0 postgresql-client-common postgresql-common Paquetes sugeridos:
oidentd ident-server postgresql-doc-9.0 Se instalarán los siguientes paquetes NUEVOS:
libpq5 postgresql postgresql-9.0 postgresql-client-9.0 postgresql-client-common postgresql-common 0 actualizados, 6 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 8108 kB de archivos.
Se utilizarán 22,0 MB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? s
Des:1 http://ftp.de.debian.org/debian/ sid/main libpq5 i386 9.0.2-1 [436 kB]
Des:2 http://ftp.de.debian.org/debian/ sid/main postgresql-client-common all 113 [56,9 kB]
Des:3 http://ftp.de.debian.org/debian/ sid/main postgresql-client-9.0 i386 9.0.2-1 [1613 kB]
Des:4 http://ftp.de.debian.org/debian/ sid/main postgresql-common all 113 [127 kB]
Des:5 http://ftp.de.debian.org/debian/ sid/main postgresql-9.0 i386 9.0.2-1 [5567 kB]
Des:6 http://ftp.de.debian.org/debian/ sid/main postgresql all 9.0.2-1 [307 kB]
Descargados 8108 kB en 8s (991 kB/s)
Preconfigurando paquetes ...
Seleccionando el paquete libpq5 previamente no seleccionado.
(Leyendo la base de datos ... 121304 ficheros o directorios instalados actualmente.)
Desempaquetando libpq5 (de .../libpq5_9.0.2-1_i386.deb) ...
Seleccionando el paquete postgresql-client-common previamente no seleccionado.
Desempaquetando postgresql-client-common (de
.../postgresql-client-common_113_all.deb) ...
Seleccionando el paquete postgresql-client-9.0 previamente no seleccionado.
Desempaquetando postgresql-client-9.0 (de
.../postgresql-client-9.0_9.0.2-1_i386.deb) ...
Seleccionando el paquete postgresql-common previamente no seleccionado.
Desempaquetando postgresql-common (de .../postgresql-common_113_all.deb) ...
Seleccionando el paquete postgresql-9.0 previamente no seleccionado.
Desempaquetando postgresql-9.0 (de .../postgresql-9.0_9.0.2-1_i386.deb) ...
Seleccionando el paquete postgresql previamente no seleccionado.
Desempaquetando postgresql (de .../postgresql_9.0.2-1_all.deb) ...
Procesando disparadores para man-db ...
Configurando libpq5 (9.0.2-1) ...
Configurando postgresql-client-common (113) ...
Configurando postgresql-client-9.0 (9.0.2-1) ...
update-alternatives: utilizando
/usr/share/postgresql/9.0/man/man1/psql.1.gz para proveer /usr/share/man/man1/psql.1.gz (psql.1.gz) en modo automático.
Configurando postgresql-common (113) ...
Añadiendo al usuario postgres al grupo ssl-cert Building PostgreSQL dictionaries from installed myspell/hunspell packages...
en_us es
Configurando postgresql-9.0 (9.0.2-1) ...
Creating new cluster (configuration: /etc/postgresql/9.0/main, data:
/var/lib/postgresql/9.0/main)...
Moving configuration file /var/lib/postgresql/9.0/main/postgresql.conf
to /etc/postgresql/9.0/main...
Moving configuration file /var/lib/postgresql/9.0/main/pg_hba.conf to /etc/postgresql/9.0/main...
Moving configuration file /var/lib/postgresql/9.0/main/pg_ident.conf
to /etc/postgresql/9.0/main...
Configuring postgresql.conf to use port 5432...
update-alternatives: utilizando
/usr/share/postgresql/9.0/man/man1/postmaster.1.gz para proveer /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) en modo automático.
Starting PostgreSQL 9.0 database server: main.
Configurando postgresql (9.0.2-1) ...

  • Resultado de: sudo apt-get install pgadmin3

ajpdsoft@pcdebian:~$ sudo apt-get install pgadmin3
Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
libwxbase2.8-0 libwxgtk2.8-0 pgadmin3-data pgagent Paquetes sugeridos:
libgnomeprintui2.2-0 postgresql-contrib Se instalarán los siguientes paquetes NUEVOS:
libwxbase2.8-0 libwxgtk2.8-0 pgadmin3 pgadmin3-data pgagent 0 actualizados, 5 se instalarán, 0 para eliminar y 0 no actualizados.
Necesito descargar 11,9 MB de archivos.
Se utilizarán 29,5 MB de espacio de disco adicional después de esta operación.
¿Desea continuar [S/n]? s
Des:1 http://ftp.de.debian.org/debian/ sid/main libwxbase2.8-0 i386 2.8.10.1-3+b1 [700 kB]
Des:2 http://ftp.de.debian.org/debian/ sid/main libwxgtk2.8-0 i386 2.8.10.1-3+b1 [3494 kB]
Des:3 http://ftp.de.debian.org/debian/ sid/main pgadmin3-data all 1.10.5-1 [5535 kB]
Des:4 http://ftp.de.debian.org/debian/ sid/main pgadmin3 i386 1.10.5-1 [2084 kB]
Des:5 http://ftp.de.debian.org/debian/ sid/main pgagent i386 3.0.1-1 [38,5 kB]
Descargados 11,9 MB en 8s (1384 kB/s)
Seleccionando el paquete libwxbase2.8-0 previamente no seleccionado.
(Leyendo la base de datos ... 121811 ficheros o directorios instalados actualmente.)
Desempaquetando libwxbase2.8-0 (de .../libwxbase2.8-0_2.8.10.1-3+b1_i386.deb) ...
Seleccionando el paquete libwxgtk2.8-0 previamente no seleccionado.
Desempaquetando libwxgtk2.8-0 (de .../libwxgtk2.8-0_2.8.10.1-3+b1_i386.deb) ...
Seleccionando el paquete pgadmin3-data previamente no seleccionado.
Desempaquetando pgadmin3-data (de .../pgadmin3-data_1.10.5-1_all.deb) ...
Seleccionando el paquete pgadmin3 previamente no seleccionado.
Desempaquetando pgadmin3 (de .../pgadmin3_1.10.5-1_i386.deb) ...
Seleccionando el paquete pgagent previamente no seleccionado.
Desempaquetando pgagent (de .../pgagent_3.0.1-1_i386.deb) ...
Procesando disparadores para man-db ...
Procesando disparadores para menu ...
Procesando disparadores para gnome-menus ...
Procesando disparadores para desktop-file-utils ...
Configurando libwxbase2.8-0 (2.8.10.1-3+b1) ...
Configurando libwxgtk2.8-0 (2.8.10.1-3+b1) ...
Configurando pgadmin3-data (1.10.5-1) ...
Configurando pgadmin3 (1.10.5-1) ...
Configurando pgagent (3.0.1-1) ...
Procesando disparadores para menu ...

 

  • Solución al error "Server doesn't listen"

Server doesn't listen
The server doesn't accept connections: the connection library reports
could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "192.168.1.120" and accepting TCP/IP connections on port 5432?
If you encounter this message, please check if the server you're trying to contact is actually running PostgreSQL on the given port. Test if you have network connectivity from your client to the server host using ping or equivalent tools. Is your network / VPN / SSH tunnel / firewall configured correctly?
For security reasons, PostgreSQL does not listen on all available IP addresses on the server machine initially. In order to access the server over the network, you need to enable listening on the address first.
For PostgreSQL servers starting with version 8.0, this is controlled using the "listen_addresses" parameter in the postgresql.conf file. Here, you can enter a list of IP addresses the server should listen on, or simply use '*' to listen on all available IP addresses. For earlier servers (Version 7.3 or 7.4), you'll need to set the "tcpip_socket" parameter to 'true'.
You can use the postgresql.conf editor that is built into pgAdmin III to edit the postgresql.conf configuration file. After changing this file, you need to restart the server process to make the setting effective.
If you double-checked your configuration but still get this error message, it's still unlikely that you encounter a fatal PostgreSQL misbehaviour. You probably have some low level network connectivity problems (e.g. firewall configuration). Please check this thoroughly before reporting a bug to the PostgreSQL community.

Este error se soluciona permitiendo las conexiones remotas como indicamos aquí.

 

  • Solución al error "pgAdmin error connecting to the server: FATAL: no hay una línea en pg_hba.conf para...":

---------------------------
pgAdmin III
---------------------------
Ha ocurrido un error:

Error connecting to the server: FATAL: no hay una línea en pg_hba.conf para <<192.168.1.2>>, usuario <>, base de datos <>, SSL activo
FATAL: no hay una línea en pg_hba.conf para <<192.168.1.2>>, usuario <>, base de datos <>, SSL inactivo

---------------------------
Aceptar
---------------------------

La autenticación del cliente en PostgreSQL se controla mediante un archivo de configuración, que tradicionalmente se denomina pg_hba.conf y se almacena en directorio de la base de datos. HBA representa la autenticación basada en host. En el siguiente enlace explicamos cómo solucionar este problema: Configurar PostgreSQL en Linux Debian para permitir conexiones externas.

 

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.


Anuncios


Enviado el Miércoles, 19 enero a las 01:26:19 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A