En este laboratorio, instalaremos y realizaremos la configuración inicial de PostgreSQL en la máquina virtual (VM) de LabEx. El objetivo es poner en funcionamiento PostgreSQL y verificar su funcionalidad básica.
Comenzaremos actualizando las listas de paquetes e instalando el servidor de PostgreSQL junto con el paquete postgresql-contrib. Después de la instalación, verificaremos que el servicio de PostgreSQL esté en ejecución y aceptando conexiones utilizando el comando pg_isready. Finalmente, exploraremos las bases de datos predeterminadas y comprobaremos el estado del servidor y la configuración básica.
Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel intermedio con una tasa de finalización del 65%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.
Instalar PostgreSQL y verificar la instalación
En este paso, instalaremos PostgreSQL en la máquina virtual (VM) de LabEx y verificaremos que la instalación fue exitosa. PostgreSQL es un potente sistema de gestión de bases de datos relacionales (RDBMS) de código abierto.
Primero, actualicemos las listas de paquetes para actualizaciones y nuevas instalaciones. Abra una terminal en la máquina virtual de LabEx. Puede encontrar el icono de la terminal en el escritorio.
Ejecute el siguiente comando:
sudo apt update
Este comando actualiza la lista de paquetes disponibles y sus versiones, pero no instala ni actualiza ningún paquete. Debería ver una salida que indique que se están actualizando las listas de paquetes.
A continuación, instale el servidor de PostgreSQL y el paquete postgresql-contrib. El paquete postgresql-contrib proporciona utilidades y funcionalidades adicionales que suelen ser útiles.
Ejecute el siguiente comando:
sudo apt install postgresql postgresql-contrib -y
La bandera -y responde automáticamente "sí" a cualquier solicitud durante el proceso de instalación. Este comando descargará e instalará PostgreSQL y sus paquetes relacionados. Verá mucha salida mientras se descargan e instalan los paquetes.
Después de que la instalación se complete, necesitamos verificar que PostgreSQL esté en ejecución. PostgreSQL debería iniciarse automáticamente después de la instalación.
Para verificar el estado del servicio de PostgreSQL, ejecute el siguiente comando:
sudo service postgresql status
También podemos usar el comando pg_isready para verificar si el servidor de PostgreSQL está en ejecución y aceptando conexiones.
Ejecute el siguiente comando:
pg_isready
Si PostgreSQL está en ejecución, debería ver la siguiente salida:
/var/run/postgresql:5432 - accepting connections
Si PostgreSQL no está en ejecución, es posible que vea un mensaje de error como:
/var/run/postgresql:5432 - no response
Si encuentra el error "no response", intente reiniciar el servicio de PostgreSQL. Puede probar el siguiente comando:
sudo service postgresql restart
Luego, ejecute pg_isready nuevamente para verificar el estado.
Si pg_isready muestra "accepting connections", confirma que PostgreSQL se ha instalado y está en ejecución correctamente.
Acceder a la shell de PostgreSQL (psql)
En este paso, accederemos a la shell de PostgreSQL, psql, que es una herramienta de línea de comandos para interactuar con bases de datos PostgreSQL. psql te permite ejecutar consultas SQL, administrar bases de datos y realizar otras tareas administrativas.
Por defecto, PostgreSQL crea un usuario Unix llamado postgres que corresponde al superusuario de PostgreSQL. Para acceder a la shell psql, puedes cambiar al usuario postgres o usar sudo para ejecutar comandos como el usuario postgres.
Primero, cambiemos al usuario postgres. Ejecuta el siguiente comando:
sudo -i -u postgres
Este comando cambia el usuario actual a postgres. Notarás que el indicador de línea de comandos cambia para reflejar el nuevo usuario.
Ahora que has iniciado sesión como el usuario postgres, puedes acceder a la shell psql. Ejecuta el siguiente comando:
psql
Este comando abrirá la shell psql. Deberías ver un indicador que se vea así:
postgres=#
Esto indica que estás conectado al servidor de PostgreSQL y ahora puedes ejecutar comandos SQL.
Para salir de la shell psql, escribe \q y presiona Enter:
postgres=## \q
Esto te devolverá a la shell del usuario postgres.
Para salir de la shell del usuario postgres y volver a tu usuario original (labex), escribe exit y presiona Enter:
exit
Alternativamente, puedes acceder directamente a la shell psql como el usuario labex usando sudo. Esto evita la necesidad de cambiar de usuario.
Ejecuta el siguiente comando:
sudo -u postgres psql
Este comando ejecuta el comando psql como el usuario postgres. Estarás directamente conectado a la shell psql.
Nuevamente, para salir de la shell psql, escribe \q y presiona Enter:
postgres=## \q
Esto te devolverá a la shell del usuario labex.
En resumen, has aprendido dos formas de acceder a la shell psql: cambiando al usuario postgres y usando sudo. Ambos métodos logran el mismo resultado, pero usar sudo puede ser más conveniente en algunos casos.
Explorar las bases de datos predeterminadas
En este paso, exploraremos las bases de datos predeterminadas que se crean cuando se instala PostgreSQL. Estas bases de datos proporcionan funcionalidad esencial e información sobre el servidor de PostgreSQL.
Primero, accede a la shell psql como el usuario postgres. Puedes usar el siguiente comando:
sudo -u postgres psql
Una vez que estés en la shell psql, puedes listar las bases de datos disponibles usando el comando \l. Ejecuta el siguiente comando:
postgres=## \l
Este comando mostrará una lista de bases de datos, junto con información sobre sus propietarios, codificaciones y privilegios de acceso. Deberías ver al menos tres bases de datos:
postgres: Esta es la base de datos predeterminada a la que te conectas cuando accedes por primera vez a la shell psql. A menudo se utiliza para tareas administrativas.
template0: Esta base de datos se utiliza como plantilla para crear nuevas bases de datos. No debes modificar esta base de datos.
template1: Esta es otra base de datos plantilla que se utiliza para crear nuevas bases de datos. Es una plantilla estándar y se puede personalizar.
Para conectarte a una base de datos específica, puedes usar el comando \c seguido del nombre de la base de datos. Por ejemplo, para conectarte a la base de datos postgres, ejecuta el siguiente comando:
postgres=## \c postgres
Deberías ver un mensaje que indique que ahora estás conectado a la base de datos postgres:
You are now connected to database "postgres" as user "postgres".
Ahora que estás conectado a la base de datos postgres, puedes explorar su contenido. Por ejemplo, puedes listar las tablas de la base de datos usando el comando \dt:
postgres=## \dt
Este comando mostrará una lista de tablas en la base de datos actual. Dado que la base de datos postgres se utiliza principalmente para tareas administrativas, es posible que no contenga tablas definidas por el usuario.
También puedes ver información sobre la conexión actual a la base de datos usando el comando \conninfo:
postgres=## \conninfo
Este comando mostrará información como el nombre de la base de datos, el usuario, el host y el puerto.
Para desconectarte de la base de datos actual y volver a la conexión predeterminada, puedes usar el comando \c sin especificar el nombre de una base de datos:
postgres=## \c
Esto te conectará de nuevo a la base de datos predeterminada, que suele ser la base de datos postgres.
Finalmente, sal de la shell psql escribiendo \q y presionando Enter:
postgres=## \q
Esto te devolverá a la shell del usuario labex.
En este paso, has aprendido cómo listar las bases de datos disponibles, conectarte a una base de datos específica y explorar su contenido usando la shell psql.
Verificar el estado del servidor y la configuración básica
En este paso, verificaremos el estado del servidor de PostgreSQL y exploraremos algunas configuraciones básicas.
Como se mencionó anteriormente, dado que la máquina virtual (VM) de LabEx se ejecuta en un contenedor Docker, los comandos systemctl pueden no funcionar como se espera. Principalmente usaremos pg_isready y psql para verificar el estado del servidor.
Primero, volvamos a verificar que el servidor de PostgreSQL esté en ejecución. Ejecuta el siguiente comando:
pg_isready
Si PostgreSQL está en ejecución, deberías ver la siguiente salida:
/var/run/postgresql:5432 - accepting connections
A continuación, veamos algunas configuraciones básicas utilizando la shell psql. Accede a la shell psql como el usuario postgres:
sudo -u postgres psql
Una vez que estés en la shell psql, puedes verificar la versión de PostgreSQL utilizando la siguiente consulta SQL:
SELECT version();
Ejecuta esta consulta en la shell psql. Deberías ver una salida similar a:
version
----------------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.17 (Ubuntu 14.17-0ubuntu0.22.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit
(1 row)
Esto muestra la versión de PostgreSQL instalada en el servidor.
También puedes verificar el usuario actual de la base de datos:
SELECT user;
La salida será:
user
----------
postgres
(1 row)
Para verificar el nombre de la base de datos a la que actualmente estás conectado, utiliza:
Para ver las configuraciones, puedes utilizar el comando SHOW. Por ejemplo, para verificar la configuración listen_addresses, que especifica las direcciones IP en las que el servidor escucha conexiones, ejecuta el siguiente comando:
El localhost indica que el servidor está escuchando en todas las direcciones IP disponibles.
Otra configuración útil para verificar es port, que especifica el número de puerto en el que el servidor escucha conexiones:
SHOW port;
La salida será:
port
------
5432
(1 row)
Esto indica que el servidor está escuchando en el puerto 5432, que es el puerto predeterminado de PostgreSQL.
Finalmente, sal de la shell psql escribiendo \q y presionando Enter:
postgres=## \q
Esto te devolverá a la shell del usuario labex.
En este paso, has aprendido cómo verificar el estado del servidor de PostgreSQL y explorar algunas configuraciones básicas utilizando pg_isready y la shell psql.
Resumen
En este laboratorio, instalamos el sistema de gestión de bases de datos relacionales (RDBMS) PostgreSQL en la máquina virtual (VM) de LabEx utilizando apt update y apt install postgresql postgresql-contrib -y. La bandera -y se utilizó para aceptar automáticamente las solicitudes durante la instalación.
Después de la instalación, verificamos que el servicio de PostgreSQL estaba en ejecución y aceptando conexiones. Debido a que la VM de LabEx se ejecuta en un contenedor Docker, utilizamos el comando pg_isready en lugar de systemctl status postgresql para verificar el estado del servidor. La salida esperada de pg_isready cuando el servidor está en ejecución es /var/run/postgresql:5432 - accepting connections.