User Tools

Site Tools


proyecto:instalar_postgres

This is an old revision of the document!


Instalar Postgres

Desafortunadamente, por defecto, Debian tiene una versión antigua de Postgres, entonces, tenemos que actualizar los Debian packages antes que instalar Postgres.

Para empezar, en el servidor, hay que editar el siguiente archivo:

sudo nano /etc/apt/sources.list.d/pgdg.list

(sudo dice que va ejecutar el comando con privilegios administrativos (como “root”). La contraseña es la misma que su cuenta SSH. )

En el archivo, hay que agregar la siguiente linea y guardarlo:

deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main

Después, hay que bajar y instalar un signing key para verificar el package nuevo y instalarlo.

cd /home/cc3201/

wget --no-check-certificate --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Así hemos actualizado los packages de instalación de Debian.

Ahora, podemos instalar la versión actual de Postgres (9.6):

sudo apt-get update
sudo apt-get install postgresql-9.6

Ahora sí, hay postgres.

El próximo problema es que el usuario de Postgres, por defecto, se llama postgres y nuestro usuario es cc3201, entonces si intentas con:

psql

dice

psql: FATAL:  role "cc3201" does not exist

Pero, dado que tenemos sudo, podemos usar el siguiente comando (su: switch user) para ingresar como el usuario postgres.

sudo su postgres

Entonces podemos crear un usuario para cc3201 en Postgres:

createuser cc3201 -s

La opción -s significa que cc3201 será un superuser (como postgres) que tiene poder administrativo. Y tenemos que crear una base de datos para el usuario;

createdb -O cc3201 cc3201

Después, podemos salir de la cuenta de postgres y regresar al usuario cc3201:

exit

Ahora, podemos probar Postgres:

psql
cc3201=# SELECT version();

Finalmente, podemos crear un esquema (schema), que es como un grupo de tablas (aquí hay que reemplazar <nombre> con el nombre del esquema que quieren tener):

cc3201=# CREATE SCHEMA <nombre>;

Para evitar tener que poner el esquema cada vez, se puede agregarlo al path del usuario:

cc3201=# ALTER USER cc3201 SET search_path TO <nombre>, public;

Ahora, se puede dar solo el nombre de una tabla en el esquema y no el nombre del esquema (p.ej. no hay que poner cc3201=# SELECT * FROM <nombre>.tabla; funciona con SELECT * FROM tabla).

Ahora están listos para crear tablas, cargar datos, armar indices, hacer consultas …

proyecto/instalar_postgres.1491971517.txt.gz · Last modified: 2017/04/12 04:31 by ahogan