Instalar y Usar PostgreSQL en CentOS 8
Instalar y Usar PostgreSQL en CentOS 8
Introducción
Requisitos previos
Paso 1: Instalar PostgreSQL
Paso 2: Crear un nuevo clúster de base de datos para PostgreSQL
Paso 3: Usar roles y bases de datos de PostgreSQL
Cambiar a la cuenta de postgres
Acceder a una línea de comandos de Postgres sin cambiar de cuenta
Paso 4: Crear un nuevo rol
Paso 5: Crear una nueva base de datos
Paso 6: Abrir una línea de comandos de Postgres con el nuevo rol
Paso 7: Crear y eliminar tablas
Paso 8: Agregar, consultar y eliminar datos en una tabla
Paso 9: Añadir y eliminar columnas de una tabla
Paso 10: Actualizar datos de una tabla
Conclusión
R E L AT E D
Introducción
Los sistemas de administración de bases de datos relacionales son un componente clave de una
gran cantidad de aplicaciones y sitios web. Proporcionan una alternativa estructurada para
almacenar la información, organizarla y acceder a ella.
PostgreSQL, también conocido como Postgres, es un sistema de administración de bases de
datos relacionales que proporciona una implementación del Structured Query Language, más
conocido como SQL. Se utiliza en muchos proyectos populares, grandes y pequeños, cumple con
los estándares y tiene muchas funciones avanzadas, como transacciones fiables y concurrencias
sin bloqueos de lectura.
Siguiendo esta guía, instalará la última versión de PostgreSQL en un servidor CentOS 8.
Requisitos previos
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,, for purposes that may include site operation, analytics, enhanced user
policy
Para completar
experience, este tutorial,
or advertising. You maynecesitará un servidor
choose to consent to ourcon
useCentOS
of these 8. Este servidor debería tener un
technologies,
usuario no rootor manage your own preferences.
con privilegios administrativos y un firewall configurado con firewalld . Para
AGREE & PROCEED
configurarlo, consulte nuestra Guía de configuración inicial de servidores para CentOS 8.
Paso 1: Instalar PostgreSQL
Output
postgresql 9.6 client, server [d]
postgresql 10 [d] client, server [d]
postgresql 12 client, server
Puede ver en este resultado que hay tres versiones de PostgreSQL disponibles desde el
repositorio AppStream: 9.6 , 10 y 12 . El flujo que proporciona la versión 10 de Postgres es el
predeterminado, como se indica mediante la [d] que la sigue. Si desea instalar esa versión, podría
ejecutar sudo dnf install postgresql-server y proceder con el siguiente paso. Sin embargo,
aunque la versión 10 todavía se mantiene, este tutorial instalará la versión 12, la última versión en
el momento en que se redactó este artículo.
Para instalar la versión 12 de PostgreSQL, debe habilitar el flujo de módulo de esa versión. Cuando
habilite un flujo de módulos, anule el flujo predeterminado y haga que todos los paquetes
relacionados con el flujo habilitado estén disponibles en el sistema. Observe que solo puede
habilitarse un flujo de cualquier módulo concreto que pueda habilitarse en un sistema al mismo
tiempo.
Para habilitar el flujo de módulo para Postgres versión 12, ejecute el siguiente comando:
$ sudo dnf module enable postgresql:12
Copy
Cuando se le solicite, pulse y y luego INTRO para confirmar que desea habilitar el flujo:
Output
This====================================================================
site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,Package
policy , for purposes that may include site
Architecture operation, analytics,
Version enhanced userSize
Repository
experience, or advertising. You may choose to consent to our use of these
technologies, or manage your own preferences.
====================================================================
Transaction Summary
====================================================================
Is this ok [y/N]: y
Tras habilitar el flujo de módulo de la versión 12, puede instalar el paquete postgresql-server para
instalar PostgresSQL 12 y todas sus dependencias:
$ sudo dnf install postgresql-server
Copy
Cuando se le indique, confirme la instalación pulsando y y luego INTRO :
Output
. . .
Install 4 Packages
Installed size: 62 M
Is this ok [y/N]: y
Ahora que el software está instalado, realizará algunos pasos de inicialización para preparar un
nuevo clúster de base de datos para PostgreSQL.
Paso 2: Crear un nuevo clúster de base de datos para
PostgreSQL
Debe crear un nuevo clúster de base de datos para PostgreSQL database cluster antes de
comenzar a crear tablas y cargarlas con datos. Un clúster de base de datos es una colección de
bases de datos administradas por una única instanacia de servidor. Crear un clúster de base de
datos consiste en crear los directorios en los cuales se dispondrán los datos de la base de datos,
generar las tablas de catálogo compartido y crear las bases de datos template1 y postgres .
La base de datos template1 es una plantilla usada para crear nuevas bases de datos; todo lo que
se almacene en template1 , incluso los objetos que añada, se colocarán en las nuevas bases de
datos cuando se creen. La base de datos postgres es una base de datos predeterminada
diseñada para que la empleen usuarios, utilidades y aplicaciones externas.
El paquete Postgres que instalamos en el paso anterior cuenta con una secuencia de comandos
llamada postgresql-setup que ayuda con la administración de clúster de base de datos de nivel
bajo. Para crear un clúster de la base de datos, ejecute la secuencia de comandos usando sudo y
con la opción --initdb :
This$sitesudo
usespostgresql-setup
cookies and related--initdb
Ahora que PostgreSQL está activo y en ejecución, continuaremos usando roles para aprender
cómo funciona Postgres y cómo es diferente de los sistemas de gestión de base de datos
similares que pueda haber usados en el pasado.
Paso 3: Usar roles y bases de datos de PostgreSQL
También Questions
Tutorials puede ejecutarTech
comandos
Talks conLearning Pathspostgres
la cuenta directamente
Product usando
Docs Social sudo .
Impact
Por ejemplo, en el ejemplo anterior se le indicó acceder a la línea de comandos de Postgres
pasando primero al usuario de postgres y luego ejecutando psql para abrir la línea de comandos
de Postgres. Como alternativa, puede realizarlo en un solo paso ejecutando el comando único
psql como usuario de postgres con sudo , como se muestra:
En este momento, solo tiene el rol de postgres configurado dentro de la base de datos. Puede
crear nuevos roles desde la línea de comandos con el comando createrole . El indicador --
interactive le solicitará el nombre del nuevo rol y también le preguntará si debería tener permisos
This site uses cookies and related technologies, as described in our privacy
de superusuario. MANAGE CHOICES
policy,
policy, for purposes that may include site operation, analytics, enhanced user
experience,
Si inició or advertising.
sesión a través You
de may
la choosedeto postgres
cuenta consent to,our use ofcrear
puede theseun nuevo usuario escribiendo lo
technologies, or manage your own preferences. AGREE & PROCEED
siguiente:
[postgres@server ~$] createuser --interactive
Copy
Si, como alternativa, prefiere usar sudo para cada comando sin dejar de usar su cuenta normal,
escriba lo siguiente:
$ sudo -u postgres createuser --interactive
Copy
La secuencia de comandos le mostrará algunas opciones y, según sus respuestas, ejecutará los
comandos necesarios de Postgres para crear un usuario conforme a sus especificaciones. Para
este tutorial, cree un rol llamado sammy y concédale privilegios de súper usuario introduciendo y
cuando se le indique:
Output
Enter name of role to add: sammy
Puede obtener un mayor control pasando algunos indicadores adicionales. Consulte las opciones
visitando la página man para createuser :
$ man createuser
Copy
Ahora su instalación de Postgres tiene un rol nuevo, pero aún no agregó bases de datos. En la
sección siguiente se describe este proceso.
Paso 5: Crear una nueva base de datos
Otra suposición que el sistema de autenticación de Postgres realiza por defecto es que para
cualquier rol utilizado en el inicio de sesión habrá una base de datos con el mismo nombre al que
este podrá acceder.
Esto significa que, si el usuario que creó en la última sección se llama sammy, ese rol intentará
conectarse con una base de datos que por defecto también se llama “ sammy ”. Puede crear dicha
base de datos con el comando createdb .
Si inició sesión a través de la cuenta de postgres, escribiría algo similar a lo siguiente:
[postgres@server ~$] createdb sammy
Copy
Si, como alternativa, prefiere utilizar sudo para cada comando sin dejar de emplear su cuenta
normal, escribiría lo siguiente:
This$sitesudo
uses-ucookies and createdb
postgres related technologies,
sammy
as described in our privacy MANAGE CHOICESCopy
policy,, for purposes that may include site operation, analytics, enhanced user
policy
experience, or advertising. You may choose to consent to our use of these
Esta flexibilidad
technologies, ofreceyourvarias
or manage vías para crear bases de datos cuando sea necesario.
own preferences. AGREE & PROCEED
Ahora que creó una nueva base de datos, iniciará sesión en ella con su nuevo rol.
Paso 6: Abrir una línea de comandos de Postgres con el
nuevo rol
Para iniciar sesión con la autenticación basada en ident, necesitará un usuario de Linux con el
mismo nombre de su rol y su base de datos de Postgres.
Si no tiene un usuario disponible de Linux que coincida, puede crear uno con el comando adduser .
Deberá hacerlo desde su cuenta no root con privilegios sudo (es decir, sin iniciar sesión como
usuario de postgres):
$ sudo adduser sammy
Copy
Una vez que esté disponible esta cuenta nueva, podrá cambiar y conectarse a la base de datos
escribiendo primero lo siguiente:
$ sudo -i -u sammy
Copy
$ psql
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,
policy, for purposes
Esto resultará that may include
útil si se You
conecta site operation, analytics,
a basesto consent
de datosto no enhanced user
predeterminadas o con usuarios no
experience, or advertising.
predeterminados. may choose our use of these
technologies, or manage your own preferences. AGREE & PROCEED
Al haber conectado con su base de datos, ahora puede intentar crear y eliminar tablas.
Paso 7: Crear y eliminar tablas
Ahora que sabe cómo conectarse al sistema de bases de datos de PostgreSQL, puede aprender
algunas tareas básicas de administración de Postgres.
Primero, cree una tabla para almacenar datos. A modo de ejemplo, creará una tabla en la que se
describan algunos equipos para áreas recreativas.
La sintaxis básica de este comando es la siguiente:
CREATE TABLE table_name (
);
Con estos comandos se asigna un nombre a la tabla y luego se definen las columnas, el tipo de
columna y la extensión máxima de los datos de campo. De manera opcional, también puede añadir
restricciones de tabla para cada columna.
Para fines demostrativos, cree una tabla sencilla como la siguiente:
sammy=# CREATE TABLE playground (
Copy
sammy=# equip_id serial PRIMARY KEY,
sammy=# location varchar(25) check (location in ('north', 'south', 'west', 'east', 'northe
sammy=# install_date date
sammy=# );
Este comando creará una tabla que realiza un inventario de equipos para áreas recreativas.
Comienza con el ID de un equipo, que es del tipo serial . Este tipo de dato es un número entero
que se incrementa de forma automática. También asignó a esta columna la restricción de PRIMARY
KEY , lo cual significa que los valores deben ser únicos y no nulos.
Para dos de las columnas ( equip_id e install_date ), el comando no especifica una extensión de
campo. Esto se debe a que algunos tipos de columna no requieren una extensión específica
porque la extensión está implícita en el tipo.
Las siguientes dos líneas crean columnas para type y color del equipo respectivamente. Estas no
pueden estar vacías. La línea tras estas crea una columna location y una restricción según la cual
el valor debe ser uno de los ocho posibles. La última línea crea una columna de fecha en la cual se
registra
This la fecha
site uses cookiesenand
la que usted
related instaló elasequipo.
technologies, described in our privacy MANAGE CHOICES
policy,, for purposes that may include site operation, analytics, enhanced user
policy
Puede verorsuadvertising.
experience, tabla nueva Youescribiendo
may choose toloconsent
siguiente:
to our use of these
technologies, or manage your own preferences. AGREE & PROCEED
sammy=# \d
Copy
Esto mostrará el siguiente resultado:
Output
List of relations
--------+-------------------------+----------+-------
(2 rows)
Su tabla de áreas de recreación se encuentra aquí, pero también existe algo llamado
playground_equip_id_seq que responde al tipo sequence . Esto es una representación del tipo
serial que usted atribuyó a su columna de equip_id . Esto realiza un seguimiento del número que
sigue en la secuencia y se genera de forma automática para columnas de este tipo.
Si desea ver solo la tabla sin la secuencia, puede escribir lo siguiente:
sammy=# \dt
Copy
Obtendrá el siguiente resultado:
Output
List of relations
--------+------------+-------+-------
(1 row)
En este paso, creó una tabla de ejemplo. En el siguiente paso, intentará añadir, consultar y eliminar
entradas en esa tabla.
Paso 8: Agregar, consultar y eliminar datos en una tabla
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,
policy, for purposes
Debe teneror cuidadothat may include
al ingresar site operation,
los datos analytics,
para evitar enhanced user
experience, advertising. You may choose to consent to ouralgunos errores comunes. Para empezar, no
use of these
escriba los ornombres
technologies, manage de yourlasowncolumnas entre comillas. Estás sí se necesitarán para
preferences. los& PROCEED
AGREE valores de la
columna que ingresó.
Otro aspecto que debe tener en cuenta es no ingresar un valor para la columna equip_id . Esto es
porque se genera automáticamente siempre que se cree una nueva fila en la tabla.
Recupere la información que agregó escribiendo lo siguiente:
sammy=# SELECT * FROM playground;
Copy
Verá lo siguiente:
Output
equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
(2 rows)
Aquí, puede ver que su equip_id se completó con éxito y que todos sus otros datos se
organizaron de forma correcta.
Si el tobogán del área de recreación se daña y tiene que eliminarlo, también puede eliminar la fila
de su tabla escribiendo lo siguiente:
sammy=# DELETE FROM playground WHERE type = 'slide';
Copy
Consulte la tabla de nuevo:
sammy=# SELECT * FROM playground;
Copy
Verá lo siguiente:
Output
equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
(1 row)
This
Trassite usesuna
cookies andpuede
relatedmodificarla
technologies,para
as described in our privacy
, crear tabla, añadir
analytics,o eliminar
enhancedcolumnas. Agregue una columna
MANAGE CHOICES
policy,
policy for purposes that may include site operation, user
para mostrar
experience, la última
or advertising. visita
You mayde mantenimiento
choose
technologies, or manage your own preferences.
to consentpor cada
to our useequipo
of theseescribiendo lo siguiente:
AGREE & PROCEED
sammy=# ALTER TABLE playground ADD last_maint date;
Copy
Si vuelve a visualizar la información de su tabla, observará que se agregó la nueva columna (pero
no se ingresaron datos):
sammy=# SELECT * FROM playground;
Copy
Verá lo siguiente:
Output
equip_id | type | color | location | install_date | last_maint
----------+-------+--------+-----------+--------------+------------
(1 row)
Eliminar una columna es igual de sencillo. Si determina que su equipo de trabajo utiliza una
herramienta separada para dar seguimiento al historial de mantenimiento, puede eliminar la
columna escribiendo lo siguiente:
sammy=# ALTER TABLE playground DROP last_maint;
Copy
Con esto, se eliminan la columna last_maint y los valores que se encuentren en ella, pero deja
intactos todos los demás datos.
Tras añadir y eliminar columnas, puede intentar actualizar los datos existentes en el paso final.
Paso 10: Actualizar datos de una tabla
Hasta ahora, a través de este tutorial aprendió a agregar registros a una tabla y a eliminarlos de
ella, pero aún no se abordó la forma de modificar los registros existentes.
Puede actualizar los valores de una entrada existente buscando el registro que desee y fijando el
valor que prefiera utilizar para la columna. Puede consultar el registro “ columpio ” (coincidirá con
cada columpio de su tabla) y cambiar el color a “ rojo ”.
sammy=# UPDATE playground SET color = 'red' WHERE type = 'swing';
Copy
Puede verificar la eficacia de la operación consultando los datos de nuevo:
sammy=# SELECT * FROM playground;
Copy
Verá lo siguiente:
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,
policy, for purposes that may include site operation, analytics, enhanced user
experience,
Output
or advertising. You may choose to consent to our use of these
technologies, or| manage
equip_id type |your own| preferences.
color location | install_date
AGREE & PROCEED
----------+-------+-------+-----------+--------------
(1 row)
Ahora está listo con PostgresSQL en su servidor CentOS 8. Sin embargo, aún queda mucho más
por aprender con Postgres. A continuación, se ofrecen algunas guías más en las que se abarca el
uso de Postgres:
Comparación de los sistemas de administración de bases de datos relacionales
Aprenda a ejecutar consultas en PostgreSQL
Join our DigitalOcean community of over a million developers for free! Get help and share
knowledge in our Questions & Answers section, find tutorials and tools that will help you
grow as a developer and scale your project or business, and subscribe to topics of interest.
Sign up ->
Comments
Leave a comment
Leave a comment...
This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 4.0 International
License.
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,, for purposes that may include site operation, analytics, enhanced user
policy
experience, or advertising. You may choose to consent to our use of these
technologies, or manage your own preferences. AGREE & PROCEED
Popular Topics
Ubuntu
Linux Basics
JavaScript
React
Python
Security
Apache
MySQL
Databases
Docker
Kubernetes
Ebooks
Browse all topic tags
All tutorials ->
Questions
Q&A
Ask a question
DigitalOcean Product Docs
DigitalOcean Support
Events
Tech Talks
Hacktoberfest
Deploy
Get involved
Community Newsletter
Hollie's Hub for Good
Write for DOnations
This site uses cookies
Community andintegrations
toolsthat
and related technologies, as described in our privacy MANAGE CHOICES
policy,
policy, for purposes may include site operation, analytics, enhanced user
Hatch Startup
experience, program
or advertising. You may choose to consent to our use of these
technologies, or manage your own preferences. AGREE & PROCEED
Congratulations on unlocking the whale ambience easter egg! Click the whale button in the
bottom left of your screen to toggle some ambient whale noises while you read.
Thank you to the Glacier Bay National Park & Preserve and Merrick079 for the sounds behind
this easter egg.
Interested in whales, protecting them, and their connection to helping prevent climate change?
We recommend checking out the Whale and Dolphin Conservation.
Reset easter egg to be discovered again / Permanently dismiss and hide easter egg
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,, for purposes that may include site operation, analytics, enhanced user
policy
experience, or advertising. You may choose to consent to our use of these
technologies, or manage your own preferences. AGREE & PROCEED
BECOME A CONTRIBUTOR
You get paid; we donate to tech
nonprofits.
Featured on Community Kubernetes Course Learn Python 3 Machine Learning in Python Getting started with Go
Intro to Kubernetes
DigitalOcean Products Virtual Machines Managed Databases Managed Kubernetes Block Storage
Object Storage Marketplace VPC Load Balancers
This site uses cookies and related technologies, as described in our privacy MANAGE CHOICES
policy,, for purposes that may include site operation, analytics, enhanced user
policy
experience, or advertising. You may choose to consent to our use of these
technologies, or manage your own preferences. AGREE & PROCEED