PostgreSQL, instalación y primeros pasos
Wu -
[email protected]
20 de septiembre de 2003
1
2
Resumen
PostgreSQL es, según muchos, el sistema gestor de bases de datos open
source más avanzado de los existentes, llegando incluso a rivalizar en
prestaciones con sistemas comerciales como Oracle. En este documen-
to no voy a entrar en polémicas ni comparativas con otros sistemas, si no
que voy a explicar como poner a funcionar un sistema como PostgreSQL
de una forma básica, desde su instalación a las primeras configuraciones.
En siguientes capitulos veremos configuraciones más avanzadas, opciones
de optimización, etc...
ÍNDICE
Índice
1. Instalación
1.1. FreeBSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. OpenBSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalando desde sources . . . . . . . . . . . . . . . . . . . . . . .
1.3.
1.3.1. Obteniendo los sources . . . . . . . . . . . . . . . . . . . .
1.3.2. Compilando . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Primeras configuraciones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1. Usuario pgsql
2.2. Preparando el database cluster
. . . . . . . . . . . . . . . . . . .
2.3. Lanzando el daemon . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Creacion, borrado, manejo . . . . . . . . . . . . . . . . . .
2.4.2. Permisos
. . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. postmaster
2.3.2. pg ctl
3. Conclusión
3
4
5
6
7
7
7
10
11
12
14
14
17
19
19
21
23
1 INSTALACI ÓN
1.
Instalación
4
Vamos a ver en este apartado como instalar PostgreSQL tanto en FreeB-
SD como OpenBSD utilizando el sistema de ports de cada uno, asi como la
instalación compilando los sources por nuestra cuenta.
1 INSTALACI ÓN
1.1. FreeBSD
5
La mejor forma de instalar PostgreSQL en FreeBSD es mediante el sis-
tema de ports, aunque siempre podremos bajarnos el paquete precompilado
de ftp.freebsd.org e instalarlo con pkg add.
Para instalar PostgreSQL desde los ports de FreeBSD, vamos al directorio
/usr/ports/databases/postgresql7. En el directorio databases de los ports
hay más directorios que hacen referencia a pgsql como postgresql72, que es
utilizado para instalar la ultima version de la rama 7.2.x de pgsql.
Una vez en el directorio postgresql7, editamos el Makefile para añadir unas
cosillas que, en mi opinion, le faltan a la instalación de PostgreSQL de FreeBSD,
como son el soporte nativo de Perl y Python. Para añadir estas funcionalidades,
solo tenemos que añadir estas lineas al Makefile 1 despues de las lineas en las
que establece las variables CONFIGURE ARGS y CONFIGURE ENV:
.if defined(WITH_PYTHON)
CONFIGURE_ARGS+=--with-python
.endif
.if defined(WITH_PERL)
CONFIGURE_ARGS+=--with-perl
.endif
de esta forma añadimos dos opciones mas al make a la hora de compilar el
paquete, ya me he puesto en contacto con el maintainer del port para comuni-
carle que añadiese esas opciones al Makefile, solo queda esperar que me haga
caso X). Ahora es el momento de compilarlo, para ello, simplemente ejecutamos
dentro del directorio /usr/ports/databases/postgresql7:
make -DWITH_PYTHON -DWITH_PERL -DWITH_LIBC_R install
y si todo va bien ya tendremos el paquete de PostgreSQL 7.3.X instalado,
ahora limpiamos el directorio de trabajo y borramos los ficheros que fueron
necesarios para la compilacion e instalacion de PostgreSQL
make -DWITH_PYTHON -DWITH_PERL -DWITH_LIBC_R clean
make -DWITH_PYTHON -DWITH_PERL -DWITH_LIBC_R distclean
1Evidentemente para añadir estas dos funcionalidades deberán de estar instalados tanto
Python como Perl en nuestro sistema, de otra forma nos daría un error, ya que este patch,
por así llamarlo, no comprueba esas depencias. Estoy trabajando en uno que si lo haga XD.
1 INSTALACI ÓN
1.2. OpenBSD
6
En el caso de OpenBSD también podemos instalar PostgreSQL desde ports,
pero nos encontraremos con una pequeña sorpresa, es practicamente imposible
que tengan disponible la última version de PostgreSQL 2. La solución para tener
la última version de PostgreSQL en OpenBSD es seguir los pasos del siguiente
apartado, donde veremos como compilar de 0 PostgreSQL.
Para instalar desde ports, nos encontramos con el mismo problema que en FreeB-
SD, no hay soporte nativo para los modulos de Perl ni Python, por lo que
tendremos que ir al directorio /usr/ports/databases/postgresql y editar el
Makefile para añadir ese soporte. A diferencia de como lo hicimos en el caso de
FreeBSD, añadiendo dos nuevas opciones al make, aqui añadimos los argumentos
al configure directamente 3
CONFIGURE_ARGS= --disable-rpath \
--enable-integer-datetimes \
--includedir="${PREFIX}/include/postgresql" \
--datadir="${PREFIX}/share/postgresql" \
--docdir="${PREFIX}/share/doc/postgresql" \
--with-python --with-perl$
Una vez twekeado el Makefile, y añadidas las opciones –with-python y
–with-perl podemos instalar PostgreSQL facilmente, simplemente:
make install
make clean
make distclean
2En el momento de escribir este doc, la última versión de PostgreSQL -stable es la 7.3.4,
mientras que los ports de OpenBSD tienen la 7.3.2!.
3Estoy trabajando de todas formas en un nuevo Makefile para el port de PostgreSQL de
OpenBSD, con los dos nuevos FLAVORS definidos, pronto mas noticias en el cvs de openbsd
(eso espero XD).
1 INSTALACI ÓN
7
1.3.
Instalando desde sources
1.3.1. Obteniendo los sources
Lo primero es lo primero, y en este caso hemos de bajarnos los sources
de PostgreSQL.org, para ello podemos ir a la pagina web, www.postgresql.org
y seleccionar el mirror que más nos guste, o ir directamente al mirror belga
(belnet, muy rápido):
ftp://ftp.be.postgresql.org/postgresql
y nos bajamos los sources de la ultima version, que en el momento de escribir
este doc, es la 7.3.4:
ftp://ftp.be.postgresql.org/postgresql/source/v7.3.4
los bajamos a un directorio donde vamos a realizar todo el trabajo, como
por ejemplo /root/pgsql
[Silence] ~/pgsql# ls -l
total 2
drwxr-xr-x 3 root
[Silence] ~/pgsql#
wheel 512 Sep 20 12:43 ftp.be.postgresql.org
1.3.2. Compilando
El proceso de compilación de PostgreSQL es sencillo, vamos a ver las op-
ciones más interesantes a la hora de configurar el software antes de compilarlo
e instalarlo en el sistema. En estas pruebas voy a instalar el PostgreSQL en
/usr/local/pgsql, de forma que quede instalado un poco a parte del sistema
base, pero esto depende del gusto de cada uno.
Lo primero es descomprimir los sources, lo que haremos con el comando tar:
[Silence] ~/pgsql# tar -zxvvf ftp.be.postgresql.org/postgresql/source/v7.3.4/postgresql-7.3.4.tar.gz
con descomprimir ese postgresql-X.X.X.tar.gz llega, los otros ficheros
.tar.gz son las diferentes partes del PostgreSQL en ficheros separados, pero en
este paquetito tenemos todo lo que necesitamos.
Una vez descomprimido, podemos explorar un poco el contenido de los
sources:
1196 Jun 20 2002 COPYRIGHT
3435 Oct 21 2002 GNUmakefile.in
[Silence] ~/pgsql/postgresql-7.3.4# ls -l
total 770
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
drwxr-xr-x
-rwxr-xr-x
-rw-r--r--
wheel
wheel
wheel 189570 Jul 24 02:44 HISTORY
wheel
46083 Jul 23 06:09 INSTALL
wheel
wheel
wheel
wheel
wheel 468439 Jul 23 06:09 configure
wheel
1 pgsql
1 pgsql
1 pgsql
1 pgsql
1 pgsql
1 pgsql
1 pgsql
2 pgsql
1 pgsql
1 pgsql
1432 Feb 10 2001 Makefile
1376 Nov 11 2002 README
449 Sep 5 2002 aclocal.m4
512 Jul 25 00:51 config
36758 Jul 23 06:09 configure.in
1 INSTALACI ÓN
8
drwxr-xr-x 48 pgsql
4 pgsql
drwxr-xr-x
-rw-r--r--
1 pgsql
drwxr-xr-x 16 pgsql
[Silence] ~/pgsql/postgresql-7.3.4#
wheel
wheel
wheel
wheel
1024 Jul 25 00:51 contrib
1024 Jul 25 00:51 doc
687 Oct 24 2002 register.txt
512 Jul 25 00:54 src
Son especialmente interesantes los ficheros README e INSTALL. El
primero es una introducción a los contenidos de este directorio en el que estan
los sources de PostgreSQL, el segundo son las instrucciones específicas de como
configurar, compilar e instalar PostgreSQL (este es más que aconsejable para
leer antes de ponerse a hacer nada más).
Bien, una vez leido el INSTALL, y comprendidas las opciones del Post-
greSQL, lo que necesitamos y lo que no 4, pasamos a la configuración de los
sources previa a la compilación de los mismos. Este proceso es típico de software
en sistemas unix-like, basta con ejecutar el configure de turno con las opciones
adecuadas...
[Silence] ~/pgsql# /configure --prefix=/usr/local/pgsql --with-openssl=usr \
--enable-syslog --with-python --with-perl
En nuestro caso le he pasado las siguientes opciones:
–prefix=/usr/local/pgsql :
Aquí le especifico el path donde será instalado el PostgreSQL al hacer el
make install
–with-perl –with-python :
Soporte empotrado/embebido de Perl y Python, si activamos estas op-
ciones, se compilaran e isntalar modulos para acceder desde ambos lengua-
jes a la base de datos 5.
–with-openssl=usr :
Soporte SSL, para poder realizar conexiones encryptadas via TLS, con usr
le estoy diciendo que pille las libs openssl instaladas en /usr 6, aquí se
le podrían especificar otros lugares como /usr/local/openssl para instala-
ciones alternativas que pudiesemos tener de openssl.
–enable-syslog :
Soporte para que loguee al syslog del sistema los posibles fallos, mensajes,
etc
Una vez configurados los sources, es el momento de compilarlos, para lo cual
ejecutamos:
[Silence] ~# gmake
4Aqui es donde radica el poder de compilar por ti mismo este tipo de cosas, ya que puedes
optimizarlo al máximo para tus necesidades
5En el caso de Python, que es el que he usado, instala el modulo pg, mediante el cual
puedes trabajar contra el sistema gestor de bases de datos desde tus programas en Python
6en el sistema base
1 INSTALACI ÓN
9
Tardará un rato, dependiendo del procesad
Comentarios de: PostgresSQL, instalación y primeros pasos (0)
No hay comentarios