PostgreSQL
Objetivos
- ¿Qué es PostgreSQL?
- Características principales
- Instalación
- Clientes
- Psql
- PgAdmin III
¿Qué es PostgreSQL?
- PostgreSQL es un sistema de gestión de bases de datos objeto-relacional
- Distribuido bajo licencia BSD y con su código fuente disponible libremente.
- Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales.
¿Qué es PostgreSQL?
Utiliza un modelo cliente/servidor
¿Qué es PostgreSQL?
-
Aplicación cliente: Esta es la aplicación cliente que utiliza PostgreSQL como administrador de bases de datos. La conexión puede ocurrir via TCP/IP ó sockets locales.
-
Ficheros de configuración: Los 3 ficheros principales de configuración utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf
-
Disco: Disco físico donde se almacenan los datos y toda la información necesaria para que PostgreSQL funcione
instalación
- Desde repositorios
- Docker
- Compilando código fuente
- Instalación en Windows
Desde repositorios Debian
$ sudo apt-get install postgresql
Docker
https://hub.docker.com/r/mdillon/postgis/
https://hub.docker.com/r/kartoza/postgis/
Estructura de la instalación
-
/usr/lib/postgresql/9.x→ ejecutables y librerías
-
/usr/share/postgresql/9.x → archivos sql para creación estructura
-
/usr/share/postgresql-common → herramientas comunes para administración
- /var/lib/postgresql/9.x
- /etc/postgresql/9.x/main
manejo del servicio
$ sudo service postgresql [start | stop | restart]
/etc/postgresql/9.x/main
En esta localización se encuentran los archivos necesarios para la configuración:
-
pg_hba.conf
- postgresql.conf
pg_hba.conf es el archivo de configuración de la autentificación de PostgreSQL
postgresql.conf es el archivo de configuración de PostgreSQL
Configuración accesos
Lo primero es configurar el servidor para que acepte conexiones de red.
Para ello modificaremos el archivo pg_hba.conf
[Tipo de conexion][database][usuario][IP][Netmask][Tipo de autentificacion][opciones]
local all postgres md5
CONFIGURACIÓN ACCESOS
Una vez definida la regla de acceso a nuestro servidor, le indicaremos las interfaces en las que puede escuchar el servidor. Para ello modificaremos el parámetro `listen_address` en el archivo `postgresql.conf` de la siguiente manera:
listen_address = '*'
En los parámetros de seguridad, activaremos la encriptación de las claves de usuario modificando en el mismo archivo:
password_encryption = on
clientes
psql
psql - PostgreSQL interactive terminal, es un cliente tipo terminal para la gestión de PostgreSQL
Preparar acceso
Disponemos de usuario postgres creado por la instalación en el sistema
La instalación crea en el servidor la base de datos postgres y el usuario superadministrador postgres
preparar acceso
Asignamos una clave al usuario postgres del sistema
$ su passwd postgres
Accedemos mediante psql al servidor y modificamos password de postgres
$ su postgres
$ psql
=# alter role postgres with password '<una_password>';
-
psql -d nombre_base_de_datos accederá a la base de datos que le indiquemos
-
psql -f ruta_a_archivo utiliza las sentencias que se encuentren dentro del archivo
-
psql -h nombre_servidor se conecta al servidor que le indiquemos
-
psql -p puerto se conecta a la instancia de |PG| a través del puerto indicado
-
psql -l muestra un listado de las bases de datos de la instancia
-
psql -U nombre_usuario se conecta usando el usuario indicado
-
psql -V muestra la versión de psql
algunas funciones
-
select version(); nos indicará la versión del servidor que tenemos instalada
-
\l muestra un listado de las bases de datos
-
select * from pg_user; nos muestra todos los usuarios del sistema
-
select * from pg_tables; muestra todas las tablas incluidas las del sistema
-
\c database cambia de base de datos
-
\dn muestra todos los esquemas de la base de datos
ALGUNAS funciones
-
\dt muestra las tablas, acepta expresiones para filtrar por ejemplo, \dt p* todas las tablas que empiezan por p
-
\du listado de usuarios/grupos y roles
-
\d tabla columnas, y tipos de datos de la tabla
-
\i ruta_archivo ejecuta las sentencias de un archivo
-
\o ruta_archivo devuelve los datos a un archivo
-
\conninfo muestra la información de la conexión
-
\encoding codificación fija la codificación del sistema, o sin parámetro la muestra
-
\q sale de la consola ``psql``
PgAdmin III
pgadmin3
pgAdmin es el más popular software para la administración de PostgreSQL a través de entorno gráfico. Se puede utilizar para el manejo de las versiones de 7.3 en adelante. Soporta todas las funcionalidades de PostgreSQL y permite una administración más sencilla de este. Incluye un editor de SQL desde el que se pueden realizar las consultas.
instalacion
$ sudo apt-get install pgadmin3