Instalar Postgresql en Debian

Anuncio
PostgreSQL
Instalar PostgreSQL en Debian
En este documento se describe cómo instalar PostgreSQL en Debian. Puede ser válido para otras distribuciones aunque, seguramente,
habrán cosas que no serán exactamente iguales.
Para instalarlo desde los fuentes se puede consultar Instalando PostgreSQL en Linux aunque es necesario tener unos pocos conocimientos
técnicos.
Nota: Las oredenes que aparecen precedidas por # indican que deben ser ejecutadas por el usuario root, las que aparecen precedidas
por $, pueden ser ejecutadas por cualquier usuario.
En primer lugar tenemos que instalar los paquetes. Para ver los paquetes que hay disponibles en nuestra distribución
$ apt­cache search postgresql
En mi caso voy a instalar la versión 8.1:
# apt­get install postgresql­8.1
que da como resultado:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Se instalarán los siguientes paquetes extras:
postgresql­client­8.1 postgresql­common
Paquetes sugeridos:
postgresql­doc­8.1
Se instalarán los siguientes paquetes NUEVOS:
postgresql­8.1 postgresql­client­8.1 postgresql­common
0 actualizados, 3 se instalarán, 0 para eliminar y 6 no actualizados.
Se necesita descargar 5623kB/5710kB de archivos.
Se utilizarán 16,6MB de espacio de disco adicional después de desempaquetar.
¿Desea continuar [S/n]?
es decir, que también instalará postgresql­client­8.1 y postgresql­common.
Tras descargar los paquetes, los instala en el sistema y crea el cluster (para almacenar la base de datos) en
/var/lib/postgresql/8.1/main y los ficheros de configuración en /etc/postgresql/8.1/main. En otras
distribuciones estos directorios pueden estar en otro lugar del árbol de ficheros. La salida que se obtiene es la siguiente:
Des:1 ftp://ftp.debian.org unstable/main postgresql­client­8.1 8.1.3­1 [1342kB]
Des:2 ftp://ftp.debian.org unstable/main postgresql­8.1 8.1.3­1 [4282kB]
Descargados 5623kB en 10s (518kB/s)
Preconfigurando paquetes ...
Seleccionando el paquete postgresql­common previamente no seleccionado.
(Leyendo la base de datos ...
200196 ficheros y directorios instalados actualmente.)
Desempaquetando postgresql­common (de .../postgresql­common_42_all.deb) ...
Seleccionando el paquete postgresql­client­8.1 previamente no seleccionado.
Desempaquetando postgresql­client­8.1 (de .../postgresql­client­8.1_8.1.3­1_i386.deb) ...
Seleccionando el paquete postgresql­8.1 previamente no seleccionado.
Desempaquetando postgresql­8.1 (de .../postgresql­8.1_8.1.3­1_i386.deb) ...
Configurando postgresql­common (42) ...
Creating generic self­signed certificate: /etc/postgresql­common/postgresql.crt
(replace with hand­crafted or authorized one if needed).
Configurando postgresql­client­8.1 (8.1.3­1) ...
Configurando postgresql­8.1 (8.1.3­1) ...
Creating new cluster (configuration: /etc/postgresql/8.1/main, data: /var/lib/postgresql/8.1/main)...
Moving configuration file /var/lib/postgresql/8.1/main/pg_hba.conf to /etc/postgresql/8.1/main...
Moving configuration file /var/lib/postgresql/8.1/main/pg_ident.conf to /etc/postgresql/8.1/main...
Moving configuration file /var/lib/postgresql/8.1/main/postgresql.conf to /etc/postgresql/8.1/main...
Configuring postgresql.conf to use port 5432...
Starting PostgreSQL 8.1 database server: main.
Como puede verse también pone en marcha el servidor, con lo que ya podemos intentar hacerle alguna consulta utilizando, por ejemplo,
psql:
$ psql ­l
nos devuelve
psql: FATAL: no existe el rol «user»
donde user es el nombre del usuario linux.
Es decir nos está diciendo que no existe, en postgresql (el SGBD), el usuario user. Cuando se instala postgresql, solo hay definido en el
servidor un usuario llamado postgres que tiene permisos de superusuario en el SGBD.
Por tanto, para poder trabajar con el servidor tendremos que crear un usuario, para ello lo primero que tendremos que hacer es
«convertirnos» en el usuario postgres de linux:
# su postgres
$ createuser user
donde user es el nombre del usuario que queremos crear en el SGBD y que debe coincidir con el usuario de linux desde el que queremos
conectarnos a postgresql, la respuesta que obtenemos es
¿Será el nuevo rol un superusuario? (s/n) si le contestamos que sí el usuario podrá hcer de todo en el SGBD (el servidor postgresql). Ahora ya podemos dejar de ser el usuario
postgres:
$ exit
En el fichero /etc/postgresql/8.1/main/pg_hba.conf podemos indicar quien puede conectarse y quien no al SGBD y
también cómo deben autenticarse. El fichero es autoexplicativo y fácilmente inteligible. En Debian, por defecto, se permite:
•
Conectarse a todas las bases de datos al usuario postgres desde el mismo ordenador en el que está el SGBD.
•
Conectarse a todas las bases de datos a cualquier usuario definido en el SGBD (con la orden createuser vista con
anterioridad) que se llame igual que el usuario del sistema Debian.
Para más información se puede consultar El Archivo pg_hba.conf
Documento realizado por Miguel Pérez Francisco. Este documento se rige por la licencia «Creative Commons ReconocimientoNoComercial-CompartirIgual 2.5». Para ver una copia de esta licencia, se puede visitar http://creativecommons.org/licenses/by-nc-sa/2.5/es/
Descargar