Saltar al contenido

Cómo instalar y usar PostgreSQL en Ubuntu 20.04

Introducción

Los sistemas de gestión de bases de datos relacionales son un componente clave de muchos sitios web y aplicaciones. Proporcionan una forma estructurada de almacenar, organizar y acceder a la información.

PostgreSQL, o Postgres, es un sistema de administración de bases de datos relacionales que proporciona una implementación del lenguaje de consulta SQL. Cumple con los estándares y tiene muchas características avanzadas como transacciones confiables y simultaneidad sin bloqueos de lectura.

Esta guía demuestra cómo instalar Postgres en un servidor Ubuntu 20.04. También proporciona algunas instrucciones para la administración general de la base de datos.

prerrequisitos
Para seguir este tutorial, necesitará un servidor Ubuntu 20.04 que haya sido configurado siguiendo nuestra guía Configuración inicial del servidor para Ubuntu 20.04. Después de completar este tutorial de requisitos previos, su servidor debe tener unraíz usuario con permisos sudo y un firewall básico.

Paso 1: instalar PostgreSQL

Los repositorios predeterminados de Ubuntu contienen paquetes de Postgres, por lo que puede instalarlos usando el aptsistema de embalaje.

Si no lo ha hecho recientemente, actualice el índice de paquetes locales de su servidor:

 $ sudo apt update

Luego, instale el paquete Postgres junto con un -contrib paquete que agrega algunas utilidades y funcionalidades adicionales:

  • sudo apt instalar postgresql postgresql-contrib

Ahora que el software está instalado, podemos repasar cómo funciona y cómo puede ser diferente de otros sistemas de administración de bases de datos relacionales que haya utilizado.

Paso 2: uso de bases de datos y roles de PostgreSQL

De forma predeterminada, Postgres usa un concepto llamado “roles” para manejar la autenticación y autorización. Estas son, de alguna manera, similares a las cuentas regulares de estilo Unix, pero Postgres no distingue entre usuarios y grupos y en su lugar prefiere el término más flexible “rol”.

Tras la instalación, Postgres está configurado para usar ident autenticación, lo que significa que asocia los roles de Postgres con una cuenta del sistema Unix / Linux correspondiente. Si existe un rol dentro de Postgres, un nombre de usuario de Unix / Linux con el mismo nombre puede iniciar sesión como ese rol.

El procedimiento de instalación creó una cuenta de usuario llamada postgres que está asociado con el rol de Postgres predeterminado. Para utilizar Postgres, puede iniciar sesión en esa cuenta.

Hay algunas formas de utilizar esta cuenta para acceder a Postgres.

Cambiar a la cuenta de postgres

Cambie al postgres cuenta en su servidor escribiendo:

Ahora puede acceder al indicador de PostgreSQL de inmediato escribiendo:

Desde allí, puede interactuar con el sistema de gestión de la base de datos según sea necesario.

Salga del indicador de PostgreSQL escribiendo:

Esto te llevará de regreso al postgres Símbolo del sistema de Linux.

Acceder a un indicador de Postgres sin cambiar de cuenta

También puede ejecutar el comando que desee con el postgres cuenta directamente con sudo.

Por ejemplo, en el último ejemplo, se le indicó que llegara al indicador de Postgres cambiando primero al postgres usuario y luego ejecutando psql para abrir el indicador de Postgres. Puede hacer esto en un solo paso ejecutando el comando único psql como el postgres usuario con sudo, Me gusta esto:

Esto lo iniciará directamente en Postgres sin el intermediario bash caparazón en el medio.

Nuevamente, puede salir de la sesión interactiva de Postgres escribiendo:

Muchos casos de uso requieren más de un rol de Postgres. Siga leyendo para saber cómo configurarlos.

Paso 3: creación de un nuevo rol

Actualmente, solo tienes postgres rol configurado dentro de la base de datos. Puede crear nuevos roles desde la línea de comando con el createrole mando. los --interactive flag le pedirá el nombre del nuevo rol y también le preguntará si debería tener permisos de superusuario.

Si ha iniciado sesión como postgres cuenta, puede crear un nuevo usuario escribiendo:

Si, en cambio, prefiere utilizar sudo para cada comando sin cambiar de su cuenta normal, escriba:

El script le indicará algunas opciones y, según sus respuestas, ejecutará los comandos de Postgres correctos para crear un usuario según sus especificaciones.

Enter name of role to add: sammy
Shall the new role be a superuser? (y/n) y

Puede obtener más control pasando algunas banderas adicionales. Compruebe las opciones mirando el man página:

Su instalación de Postgres ahora tiene un nuevo usuario, pero aún no ha agregado ninguna base de datos. La siguiente sección describe este proceso.

Paso 4: creación de una nueva base de datos

Otra suposición que el sistema de autenticación de Postgres hace de forma predeterminada es que para cualquier rol que se utilice para iniciar sesión, ese rol tendrá una base de datos con el mismo nombre a la que podrá acceder.

Esto significa que si el usuario que creó en la última sección se llama sammy, ese rol intentará conectarse a una base de datos que también se llama “sammy” por defecto. Puede crear la base de datos adecuada con el createdb mando.

Si ha iniciado sesión como postgres cuenta, escribiría algo como:

Si, en cambio, prefiere utilizar sudo para cada comando sin cambiar de su cuenta normal, escribiría:

 $ sudo -u postgres createdb

Esta flexibilidad proporciona múltiples rutas para crear bases de datos según sea necesario.

Paso 5: abrir un mensaje de Postgres con el nuevo rol

Para iniciar sesión con ident autenticación basada en, necesitará un usuario de Linux con el mismo nombre que su función y base de datos de Postgres.

Si no tiene un usuario de Linux que coincida disponible, puede crear uno con el adduser mando. Tendrá que hacer esto desde suraíz Cuenta con sudo privilegios (es decir, no ha iniciado sesión como postgres usuario):

 $ sudo adduser

Una vez que esta nueva cuenta esté disponible, puede cambiar y conectarse a la base de datos escribiendo:

 $ sudo -i -u

O puede hacer esto en línea:

 $ sudo -u

Este comando lo iniciará automáticamente, asumiendo que todos los componentes se han configurado correctamente.

Si desea que su usuario se conecte a una base de datos diferente, puede hacerlo especificando la base de datos de esta manera:

Una vez que haya iniciado sesión, puede verificar su información de conexión actual escribiendo:

Salida

You are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".

Esto es útil si se conecta a bases de datos no predeterminadas o con usuarios no predeterminados.

Ahora que sabe cómo conectarse al sistema de base de datos PostgreSQL, puede aprender algunas tareas básicas de administración de Postgres.

La sintaxis básica para crear tablas es la siguiente:

CREATE TABLE table_name (
    column_name1 col_type (field_length) column_constraints,
    column_name2 col_type (field_length),
    column_name3 col_type (field_length)
);

Como puede ver, estos comandos le dan un nombre a la tabla y luego definen las columnas, así como el tipo de columna y la longitud máxima de los datos del campo. Opcionalmente, también puede agregar restricciones de tabla para cada columna.

Puede obtener más información sobre cómo crear y administrar tablas en Postgres aquí.

Para fines de demostración, cree la siguiente tabla:

  • CREAR MESA de recreo (
  • equip_id serial CLAVE PRIMARIA,
  • escriba varchar (50) NOT NULL,
  • color varchar (25) NO NULO,
  • ubicación varchar (25) check (ubicación en (‘norte’, ‘sur’, ‘oeste’, ‘este’, ‘noreste’, ‘sureste’, ‘suroeste’, ‘noroeste’)),
  • fecha de instalación fecha
  • );

Este comando creará una tabla que inventaria el equipo del patio de recreo. La primera columna de la tabla contendrá los números de identificación del equipo del serial type, que es un número entero que se incrementa automáticamente. Esta columna también tiene la restricción de PRIMARY KEY lo que significa que los valores que contiene deben ser únicos y no nulos.

Las siguientes dos líneas crean columnas para el equipo. type y color respectivamente, ninguno de los cuales puede estar vacío. La línea después de estos crea un location columna, así como una restricción que requiere que el valor sea uno de los ocho valores posibles. La última línea crea un date columna que registra la fecha en la que instaló el equipo.

Para dos de las columnas (equip_id y install_date), el comando no especifica una longitud de campo. La razón de esto es que algunos tipos de datos no requieren una longitud establecida porque la longitud o el formato están implícitos.

Puede ver su nueva tabla escribiendo:

Salida

                  List of relations
 Schema |          Name           |   Type   | Owner 
--------+-------------------------+----------+-------
 public | playground              | table    | sammy
 public | playground_equip_id_seq | sequence | sammy
(2 rows)

Tu mesa de juegos está aquí, pero también hay algo llamado playground_equip_id_seq que es del tipo sequence. Esta es una representación de la serial tipo que le diste a tu equip_idcolumna. Esto realiza un seguimiento del siguiente número en la secuencia y se crea automáticamente para columnas de este tipo.

Si desea ver solo la tabla sin la secuencia, puede escribir:

Salida

          List of relations
 Schema |    Name    | Type  | Owner 
--------+------------+-------+-------
 public | playground | table | sammy
(1 row)

Con una tabla lista, usémosla para practicar la gestión de datos.

Paso 7: agregar, consultar y eliminar datos en una tabla

Ahora que tiene una tabla, puede insertar algunos datos en ella. Como ejemplo, agregue una diapositiva y un swing llamando a la tabla a la que desea agregar, nombrando las columnas y luego proporcionando datos para cada columna, así:

  • INSERT INTO patio de recreo (tipo, color, ubicación, fecha_instalación) VALORES (‘diapositiva’, ‘azul’, ‘sur’, ‘2017-04-28’);
  • INSERT INTO patio de recreo (tipo, color, ubicación, fecha de instalación) VALORES (‘columpio’, ‘amarillo’, ‘noroeste’, ‘2018-08-16’);

Debe tener cuidado al ingresar los datos para evitar algunos bloqueos comunes. Por un lado, no coloque los nombres de las columnas entre comillas, pero los valores de columna que ingrese sí necesitan comillas.

Otra cosa a tener en cuenta es que no ingresa un valor para el equip_id columna. Esto se debe a que se genera automáticamente cada vez que agrega una nueva fila a la tabla.

Recupere la información que ha agregado escribiendo:

  • SELECCIONAR * DEL patio de recreo;

Salida

 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        1 | slide | blue   | south     | 2017-04-28
        2 | swing | yellow | northwest | 2018-08-16
(2 rows)

Aquí, puedes ver que tu equip_id se ha completado correctamente y que todos los demás datos se han organizado correctamente.

Si el tobogán en el patio de recreo se rompe y tiene que quitarlo, también puede quitar la fila de su mesa escribiendo:

  • BORRAR DEL patio de recreo DONDE type = ‘slide’;

Consulta la tabla de nuevo:

  • SELECCIONAR * DEL patio de recreo;

Salida

 equip_id | type  | color  | location  | install_date 
----------+-------+--------+-----------+--------------
        2 | swing | yellow | northwest | 2018-08-16
(1 row)

Note que el slide fila ya no es parte de la tabla.

Paso 8: agregar y eliminar columnas de una tabla

Después de crear una tabla, puede modificarla agregando o quitando columnas. Agregue una columna para mostrar la última visita de mantenimiento para cada equipo escribiendo:

  • ALTER TABLE patio de recreo ADD last_maint date;

Si vuelve a ver la información de su tabla, verá que se agregó la nueva columna, pero no se ingresaron datos:

  • SELECCIONAR * DEL patio de recreo;

Salida

 equip_id | type  | color  | location  | install_date | last_maint 
----------+-------+--------+-----------+--------------+------------
        2 | swing | yellow | northwest | 2018-08-16   | 
(1 row)

Si descubre que su equipo de trabajo utiliza una herramienta separada para realizar un seguimiento del historial de mantenimiento, puede eliminar la columna escribiendo:

  • ALTER TABLE patio de recreo DROP last_maint;

Esto elimina el last_maint columna y cualquier valor que se encuentre dentro de ella, pero deja todos los demás datos intactos.

Paso 9: actualización de datos en una tabla

Hasta ahora, ha aprendido cómo agregar registros a una tabla y cómo eliminarlos, pero este tutorial aún no ha cubierto cómo modificar las entradas existentes.

Puede actualizar los valores de una entrada existente consultando el registro que desea y configurando la columna con el valor que desea utilizar. Puede consultar el swing registro (esto coincidirá cadacolumpio en su mesa) y cambie su color a red. Esto podría ser útil si le dieras un trabajo de pintura al columpio:

  • ACTUALIZAR SET de juegos color = ‘rojo’ DONDE type = ‘swing’;

Puede verificar que la operación se realizó correctamente consultando los datos nuevamente:

  • SELECCIONAR * DEL patio de recreo;

Salida

 equip_id | type  | color | location  | install_date 
----------+-------+-------+-----------+--------------
        2 | swing | red   | northwest | 2018-08-16
(1 row)

Como puede ver, la diapositiva ahora está registrada como roja.

Conclusión

Ahora está configurado con PostgreSQL en su servidor Ubuntu 20.04. Si desea obtener más información sobre Postgres y cómo usarlo, le recomendamos que consulte las siguientes guías: