Si vamos a utilizar PostgreSQL como gestor de bases de datos, el primer paso será asegurarnos de que esté correctamente instalado y en ejecución. Para ello podemos cargar en el ordenador donde se supone que se esté ejecutando el servidor Postgres la base de datos template1 mediante el programa monitor psql desde la línea de comandos de la siguiente forma:
pepe@mortadelo:~>psql template1 No se pudo conectar con el servidor; No existe el fichero o el directorio Está el servidor en ejecución localmente y aceptando conexiones en el socket de dominio Unix /tmp/.s.PGSQL.5432 ?
Si obtenemos un mensaje parecido al anterior, esto es señal de que hemos instalado los binarios pero no hemos configurado nada. En este punto tendremos que partir de la creación del esqueleto de la base de datos; esto se consigue mediante el comando initdb. Para su invocación tendremos primero cambiar de usuario, ya que esta operación tan sólo está permitida para el usuario postgres. Esto lo conseguiremos de la siguiente forma:
pepe@mortadelo:~>su Password: MORTADELO:/home/pepe #su postgres postgres@mortadelo:/home/pepe>
Es decir, accedemos primero como usuario root para cambiarnos posteriormente al usuario postgres. Ya tan solo nos quedará ejecutar initdb indicando el directorio donde se almacenarán las bases de datos:
postgres@mortadelo:/home/pepe>initdb -D /var/lib/pgsql/data
El directorio especificado es el que suele emplear la distribución Suse; para otras distribuciones, debemos consultar la documentación de las mismas al respecto.
Una vez creada la estructura base, podremos hacer que el servidor Postgres arranque automáticamente cada vez que carguemos nuestro sistema operativo Linux. Muchas veces es el mismo proceso de instalación de Postgres por parte de nuestra distribución Linux el que se encarga de realizar las operaciones necesarias para que esto ocurra, no obstante, si nos percatamos de que esto no se lleva a cabo, nosotros mismos podremos efectuar esta tarea fácilmente. En la distribución Suse esto lo conseguiremos añadiendo la línea: postgresql start al fichero /etc/init.d/boot.local. Posteriormente reiniciaremos el sistema, y el servidor de bases de datos deberá de cargarse con éxito.
Para concluir la instalación de Postgres deberemos de crear usuarios distintos al administrador de bases de datos postgres. Para ello accederemos como usuario postgres y emplearemos el programa createuser bajo la línea de comandos. Es interesante introducir un código de usuario que coincida con el nuestro propio del sistema operativo linux (en nuestro caso sería, por ejemplo, el usuario "pepe"), ya que esto simplificará la conexión a la base de datos local (tan sólo tendremos que suministrar el nombre de la base de datos, pudiendo dejar en blanco el código de usuario, el nombre del host, etc). A continuación se muestra una pantalla en la que se realiza esta operación:
pepe@MORTADELO:~>su Password: MORTADELO:/home/pepe #su postgres postgres@MORTADELO:/home/pepe>createuser pepe Debe permitírsele al usuario la creación de bases de datos? (s/n)s Debe permitírsele al usuario la creación de otros usuarios? (s/n)s CREATE USER postgres@MORTADELO:/home/pepe>
Para concluir la configuración de Postgres sería interesante modificar algunos parámetros de sus ficheros de configuración. Para ello nos situaremos en el directorio donde residan, que coincidirá con el suministrado para almacenar los datos en initdb; éste sería, por ejemplo, en nuestro caso (distribución Suse) /var/lib/pgsql/data.
![]() | Para acceder a este directorio tendremos que hacerlo bajo el usuario postgres, o bajo root |
Los puntos propuestos a modificar de la configuración del servidor de bases de datos Postgres serían los siguientes:
En el fichero postgresql.conf, podremos editar parámetros tales como el número máximo de conexiones permitidas, encriptado de la contraseña de acceso, variables para el mantenimiento de la base de datos (como autovacuum), etc.
En el fichero pg_hba.conf elegiremos el esquema bajo el cual se puedan conectar los distintos usuarios y equipos al servidor de bases de datos. El menos restrictivo es aquel en el que se permite la conexión de cualquier máquina y usuario. Nosotros lo adaptaremos a nuestras necesidades de seguridad.
Muchas veces el proceso de instalación de Postgres a partir de algún paquete binario es totalmente automático, siendo tan sólo necesaria la creación de un usuario tal y como se ha descrito. Esto ocurre por ejemplo en distribuciones tales como Ubuntu ó Debian