10 – Instalación y Configuración de PostgreSQL + pgAdmin + JDBC¶
Instalación de PostgreSQL y pgAdmin en Windows¶
Descarga el instalador oficial desde:
https://www.postgresql.org/download/windows/
- Ejecuta el instalador de EnterpriseDB (EDB) y selecciona los componentes:
- PostgreSQL Server
- pgAdmin 4
- Command Line Tools
- Define una contraseña para el usuario postgres.
- Deja el puerto por defecto 5432.
- Anota la carpeta de datos (por ejemplo C:\Program Files\PostgreSQL\16\data).
Al finalizar, PostgreSQL se inicia automáticamente como servicio de Windows. Puedes comprobarlo en el Administrador de tareas (pestaña Servicios) o con PowerShell:
net start postgresql-x64-16
Activar acceso por contraseña en Windows¶
Por defecto, el usuario postgres puede acceder localmente sin contraseña. Para requerir contraseña (necesario para pgAdmin, DBeaver o JDBC):
1.- Abre el archivo:
C:\Program Files\PostgreSQL\16\data\pg_hba.conf
2.- Busca la línea:
local all postgres trust
3.- Cámbiala por:
local all postgres md5
Opcional: permitir acceso local TCP/IP:
host all all 127.0.0.1/32 md5
Guarda los cambios y reinicia el servicio:
net stop postgresql-x64-16
net start postgresql-x64-16
Verifica el acceso:
psql -U postgres -h localhost
Debería pedir la contraseña configurada durante la instalación.
Instalación de PostgreSQL y pgAdmin en Linux (Ubuntu, Mint, Pop!_OS, etc.)¶
Opción 1 – Repositorios estándar (versión estable de Ubuntu)¶
sudo apt update
sudo apt install postgresql postgresql-contrib pgadmin4 -y
Opción 2 (recomendada) – Repositorios oficiales de PostgreSQL.org¶
Permite instalar versiones más recientes (por ejemplo PostgreSQL 16 o 17).
sudo apt install wget ca-certificates -y
wget -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo apt-key add -
. /etc/os-release
echo "deb http://apt.postgresql.org/pub/repos/apt ${VERSION_CODENAME}-pgdg main" | \
sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt install postgresql postgresql-contrib -y
Verifica que el servicio esté activo:
sudo systemctl status postgresql
(Opcional) Instalar una versión específica:
sudo apt install postgresql-16 postgresql-contrib -y
Cambiar la contraseña del usuario postgres¶
sudo -u postgres psql
ALTER USER postgres PASSWORD 'nueva_contraseña';
Ejemplo:
ALTER USER postgres PASSWORD 'admin123';
\q
Permitir acceso por contraseña (modo md5)¶
Edita el archivo de configuración de autenticación:
sudo nano /etc/postgresql/16/main/pg_hba.conf
Reemplaza:
local all postgres peer
Por:
local all postgres md5
Y añade:
host all all 127.0.0.1/32 md5
sudo systemctl restart postgresql
Método | Significado |
---|---|
peer | Usa el usuario del sistema operativo (sin contraseña) |
md5 | Requiere contraseña cifrada (recomendado) |
trust | Permite acceso sin contraseña (solo para pruebas locales) |
Crear usuarios y bases de datos¶
sudo -u postgres psql
CREATE USER juanma WITH PASSWORD '12345';
CREATE DATABASE cursos;
GRANT ALL PRIVILEGES ON DATABASE cursos TO juanma;
\c cursos
GRANT ALL PRIVILEGES ON SCHEMA public TO juanma;
ALTER ROLE juanma CREATEDB;
Conectarse con psql y pgAdmin¶
Desde la terminal¶
psql -U juanma -d cursos -h localhost -W
Desde pgAdmin¶
- Abre pgAdmin y crea una Master Password local.
- En Servers → Create → Server:
- Name: Localhost
- Host: 127.0.0.1
- Port: 5432
- Username: postgres
- Password: la configurada
- Guarda la conexión y accede a la base de datos.
Instalar el driver JDBC¶
Instalación manual¶
Descarga desde:
https://jdbc.postgresql.org/download.html
Archivo típico:
postgresql-42.7.2.jar
Estructura de proyecto:
ProyectoJava/
├─ src/
└─ lib/postgresql-42.7.2.jar
Compila y ejecuta con:
javac -cp ".:lib/postgresql-42.7.2.jar" Main.java
java -cp ".:lib/postgresql-42.7.2.jar" Main
(En Windows usa ; en lugar de :)
Instalación con Maven¶
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.2</version>
</dependency>
</dependencies>
mvn dependency:tree
Deberías ver:
org.postgresql:postgresql:jar:42.7.2:compile