PostgreSQL es el motor de base de datos donde se guardará la información de forma
permanente. Se usa en la Unidad 3. Estas instrucciones son para Ubuntu 24.04
(nativo o dentro de WSL).
A diferencia de un Linux normal, WSL no inicia los servicios al encender el
computador. Cada vez que abras Ubuntu y vayas a trabajar con la base de datos,
tendrás que ejecutar sudo service postgresql start.
Si te aparece un error de conexión rechazada desde PHP, lo primero que debes
revisar es si el servicio está iniciado.
Crear tu usuario y tu base de datos
La instalación crea un usuario administrador del sistema llamado postgres.
Entra a la consola de PostgreSQL con él:
sudo -u postgres psql
El prompt cambia a postgres=#. Ahí dentro, crea tu usuario y tu base de datos:
CREATE USER miusuario WITH PASSWORD 'micontrasena';CREATE DATABASE mibase OWNER miusuario;\q
Dentro de psql las instrucciones terminan en ;
Si presionas Enter sin punto y coma, el prompt cambia a postgres-# esperando
que sigas escribiendo. Agrega el ; y Enter para ejecutar.
\q sale de psql. Los comandos que empiezan con \ son del cliente, no SQL.
Conectarte a tu base de datos
psql -U miusuario -d mibase -h localhost
El -h localhost no sobra: fuerza la conexión por red, que es la que usa una
contraseña, en vez del método por usuario del sistema.
Comandos útiles dentro de psql
Comando
Qué hace
\l
Lista las bases de datos
\c nombre
Se conecta a otra base de datos
\dt
Lista las tablas de la base actual
\d tabla
Muestra la estructura de una tabla
\q
Salir
Alternativa gráfica
La extensión PostgreSQL de VSCode (ver Editor y extensiones)
permite explorar las tablas y ejecutar consultas sin salir del editor. Es cómoda,
pero conviene saber moverse en psql: es lo que vas a encontrar en cualquier
servidor.
Checkpoint
Intenta responder antes de desplegar cada pregunta.
¿Qué comando inicia el servicio de PostgreSQL y por qué hay que repetirlo en WSL?
sudo service postgresql start
Hay que repetirlo porque WSL no inicia los servicios al encender el computador,
a diferencia de un Linux normal. Cada vez que abras Ubuntu y vayas a trabajar con
la base de datos, tendrás que ejecutarlo. Si PHP te da un error de conexión
rechazada, esto es lo primero que debes revisar.
¿Cómo entras a psql como administrador?
sudo -u postgres psql
postgres es el usuario administrador que crea la instalación. El prompt cambia a
postgres=#.
¿Qué diferencia hay entre un comando SQL y uno que empieza con \?
Los comandos SQL (CREATE, SELECT, …) son instrucciones para la base de
datos y terminan en punto y coma. Los que empiezan con \ son atajos del
cliente psql, no SQL: no llevan punto y coma y no funcionan desde PHP.
¿Cómo listas las tablas de una base de datos?
Con \dt, estando conectado a esa base. Para cambiarte de base primero se usa
\c nombre, y \l lista todas las bases disponibles.