Home

Instalar y configurar Postgres en Ubuntu Server 12.04 con acceso remoto

webmaster's picture

En Ubuntu disponemos paquetes para varias versiones de PostgreSQL: desde la 7.4, 8.0, 8.1 y 8.2, 9.1 de modo que instalaremos la última versión a no ser que necesitemos alguna anterior. Los paquetes necesarios para una instalación completa son los de la parte cliente (postgresql-client) y los de la parte servidora (postgresql). En un ordenador que usemos como cliente sólo necesitamos los paquetes del cliente. También es recomentable instalar un cliente gráfico que nos facilitará la interacción con el servidor. Un cliente gráfico recomendable es pgAdmin III, que funciona muy bien.

En nuestro articulo instalaremos el Servidor de Base de datos PostgreSQL en el Ubuntu Server 12.04, el cliente en el Ubuntu Desktop 13.04 mas la patte gráfica pgAdmin III y en Windows 7 Professional, la Version de pgAdmin III para Windows, de forma que podamos acceder a la Base de datos desde cualquier plataforma.
 
Todas las instalaciones lo heremos como superusuario asi que lo primero que hacemos después de conectarnos es pasarnos a utilizar esa cuenta con los derechos de administración.

Empezamos en el Servidor UBUNTU Server 12.04

Instalamos el Servidor desde el repositorio de paquetes, pero antes actualizamos los repositorios --ver si hay algo nuevo--, es decir actualizar la lista de todos los paquetes, con la dirección de dónde obtenerlos para que a la hora de hacer la búsqueda y su posterior descarga, sea más rápida. Ojo con apt-get upgrade porque lo que hacemos es una actualización de nuestro sistema con todas las posibles actualizaciones que pudiera haber, es decir no sólo actualiza nuestro sistema operativo sino que también las aplicaciones que están contenidas en los repositorios.

apt-get update

Al finalizar tecleamos la instalación del servidor

apt-get install postgresql

Si queremos instalar el cliente para postgres en la misma máquina ejecutamos el comando

apt-get install postgresql-client (pero lo dejaremos para la maquina cliente)

Esto nos traera la ultima version compilada y disponible en el repositorio. Por razones de seguridad estableceremos la nueva contraseña al usuario del sistema creado por PostgreSQL:

passwd postgres

Cambiar los privilegios de acceso al shell del usuario postgres con el siguiente comando:

vipw

Cambiamos el shell del usuario postgres de "/bin/false" a "/bin/bash". Luego salimos grabando pulsando la tecla escape ":wq". Para verificar si la instalación fue satisfactoria accedemos a la shell del servidor de bases de datos utilizando la cuenta del usuario postgres con la plantilla "template1" que crea por defecto

su postgres -c "psql template1"

Si el acceso ha sido satisfactorio cambiamos la contraseña al usuario predeterminado del servidor de bases de datos:

Nota: Puede darse el caso de que con el comando anterior no accedas a la base de datos directamente. En ese caso tendrás que hacerlo en dos pasos: Primero pasarte al usuario postgres y después acceder a la base de datos utilizando el cliente psql en la consola con los siguientes comandos:

su postgres
psql -h tempate1 -U postgres

template1=# ALTER USER postgres WITH PASSWORD 'nueva_contraseña';

 Te saldrá el siguiente mensaje confirmando la operación:
 
ALTER ROLE
 
Para salir de la shell del servidor de bases de datos con el comando \q :

template1=# \q 

Hasta el momento solo hemos configurado el servidor para permitir las conexiones locales con el usuario postgres, pero aun no se podría entrar en remoto.

Permitir conexiones remotas

Por motivos de seguridad, la configuración por defecto no admite conexiones externas. Para habilitarlas tenemos que editar el fichero /etc/postgresql//main/postgresql.conf.

vi /etc/postgresql/9.1/main/postgresql.conf

Ahora buscamos las siguientes líneas que se encuentran comentadas y la descomentamos quitando el simbolo # y realizando los cambios que aparecen más abajo

listen_addresses = '*'
password_encryption = on

Guardamos los cambios y reiniciamos el dominio para que los cambios surjan efecto con los comandos:

/etc/init.d/postgresql restart -o tambien- service postgresql restart

Configurar la lista de acceso

La configuración de la lista de acceso permite decirle a PostgreSQL qué método de autentificación usar y establecer relaciones de confianza para ciertas máquinas y redes. Hay que editar el fichero etc/postgresql/9.1/main/pg_hba.conf:

sudo vi /etc/postgresql/9.1/main/pg_hba.conf

Al final del archivo se encuentra una lista de acceso predeterminada, ahora, dependiendo de su necesidad puedes hacer lo siguiente: Si necesita que cualquier usuario se conecte por medio de una dirección IP en especifico, agregue al final la siguiente línea:

host all all 192.168.1.4 255.255.255.0 md5

En nuestro caso necesitamos que cualquier usuario (usuario de base de datos autentificándose) se conecte por medio de cualquier dirección IP, agregue al final la siguiente línea:

host all all 0.0.0.0 0.0.0.0 password

Guardamos los cambios y reiniciamos el dominio para que los cambios surjan efecto:

service postgresql restart

Conectandonos con el servidor PostgreSQL en remoto

Para conectarnos al Servidor PostgreSQL instalado en nuestro Ubuntu Server 12.03 vamos a utilizar la linea de comando desde otro servidor LINUX en este caso un CentOs 5 en donde tenemos instalado tanto la herramienta cliente como servidora y lo tenemos activo. Véase, como instalar Instalación de PostgreSQL en CentOS 5.0 En la linea de comando tecleamos:

psql -h vlserver2 -U postgres

Nos pedirá el password del usuario postgres y entraremos en la Shell del Postgres en el Servidor vlserver2 poner pantalla Una vez dentro podemos ver la version del motor de la Base de datos que tenemos instalado con el comando:

postgres=# SELECT VERSION();

Conectandonos en Remoto con pgAdmin III desde Windows

Una vez que tenemos tenemos configurado y probado la conexion a nuestro servidor vamo a utilizar la Aplicación pgAdmin II para windows para conectarnos y administrar el servidor. Para ello nos descargamos desde la página de Downloads para Windows de pgAmin III  el fichero pgadmin3-1.18.0.zip de la instalación para Windows. También tenemos que bajarnos los ficheros pgadmin3.po y pgadmin3.mo de idioma Español desde la página de Translations que aunque está a un 63% traducido se puede utilizar en su totalidad. Léa el articulo "Instalación de PgAmin III para Windows"

Accediendo a PostgresQL Server desde pgAmin II para Windows

Abrimos el programa desde nuestro acceso directo y al principio tendremos que configurar una conexion a un servido ya sea local o remoto. En nuestro caso nos conectaremos a nuestro servidor vlserver2 que ya está corriendo

      Pulse en la imagen para ampliar
      Pulse en la imagen para ampliar
 
La primera ventana aparece al pulsar el botón - Abrir una nueva conexión - en la que tendremos que poner los datos del servidor al cual nos vamos a conectar, la base de datos por defetto, el usuario y la password, dejando por defecto el puerto 5432 reservado para el acceso. Al terminar pulsamos el botón OK y deberá conectarse con la Base de datos configurada. En el momento que se produzca la conexion nos aparecerán todos los objetos que componen la BD a la cual nos hemos conectado y ya podremos empezar a introducir nuestros datos en el ser vidor; asi como empeza a crear nuevas estructuras de datos.
 

Conectandonos en Remoto con pgAdmin III desde Ubuntu desktop 13.04

Para instalar el pgAdmin III en Ubuntu desktop, solo hay que ir al instalador de software y en la parte de busqueda teclear pgadmin 3 y aparecerá la aplicación disponible para su descarga e instalación. Una vez instalada, ésta no aparece en el lanzador automátcamente, por lo que tendremos que buscarla en la lista de aplicaciones instaladas y desde alli ejecutar la aplicación.

      Pulse en la imagen para ampliar
<      Pulse en la imagen para ampliar

Accediendo a PostgresQL Server desde pgAmin II para Windows

Abrimos el programa desde nuestro acceso directo y al principio tendremos que configurar una conexion a un servido ya sea local o remoto. En nuestro caso nos conectaremos a nuestro servidor vlserver2 que ya está corriendo.

 

      Pulse en la imagen para ampliar
      Pulse en la imagen para ampliar

Cuando nos conectamos por primera vez nos avisa de la posibilidad de almacenar en local el password introducido para el usuario postgres. Este fichero e grabará en texto plano, por lo que spor seguridad le indicaremos que NO. Posteriormente nos muestra la información acerca de que algunas utilidades de Administración pueden no estar activas en el servidor, las cuales no podrán ejecutarse desde el entorno remoto. Para ello deberiamos cambiar algunos de los aspectos en el archivo de configuración.

El resto de pasos son exactamente iguales que los ejecutados en Windows
Fuente: 

Centro Práctico - LEMURSOLUTION

Contacto: 
webmaster