Paga en 4 cuotas sin intereses de $52.25

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

18d

15h

06m

11s

14

Instalación de POSTGRESQL en WSL2 y accesos con pagAdmin en Windows

Rolando Oxalc
Oxalc
13013

A estas alturas seguro ya has hecho el curso de Prework de Windows para poder establecer tu entorno de desarrollo (Si no lo has hecho o tiene curiosidad de qué se trata, lo puedes revisar aquí), avanzaste por todo el frontend y ahora quieres conocer a detalle el backend por lo que has llegado hasta aquí a conocer POSTGRES y quieres comenzar a trabajar con él, pero tienes problemas con su instalación en Windows o quieres aprovechar las ventajas que hay en usar WSL para el desarrollo por el uso intensivo de la terminal y la gran potencia que hay en el sistema UNIX o simplemente eres un curioso y quieres sentirte un hacker. Pues aquí hay una solución que puede conectar los 2 mundos:


Primero: Instalar PostgreSQL en WSL2


Como indica aquí, puedes instalar Postgres siguiendo los siguientes pasos:

  1. Abrir el terminal WSL, en este caso vamos a usar el de Ubuntu con Oh My Zzh.
  2. Actualiza con los comandos sudo apt update && sudo apt upgrade
  3. Luego de actualizado el sistema, instala postgres con el siguiente comando: sudo apt install postgresql postgresql-contrib
  4. Confirma que todo esté instalado y obtendrás la versión instalada con el siguiente comando psql –versión

Si la instalación salió bien, en tu terminal verás esto:

instalacion exitosa

NOTA:

Si entras a la página de descarga de postgres verás que la última versión es la 14.1, pero si estás haciendo el Curso de PostgresSQL sabrás que recomiendan instalar la penúltima o antepenúltima versión, ya que es la que suele estar en los sistemas cloud que manejan esta base de datos por lo que esta versión sería la antepenúltima y servirá para hacer el curso sin problemas.

Luego de instalado, éstos 3 comandos serán los que necesitarás para usar POSTGRES:

  • sudo service postgresql start para iniciar la base de datos, aquí te va a pedir la clave root de wsl
  • sudo service postgresql status para conocer el estado de la base de datos.
  • sudo service postgresql stop para detener la base de datos

Esto es lo que deberías ver en tu terminal cuando ejecutas estos comandos

comandos

Con la instalación de PostgresSQL, se crea por defecto el usuario admin, el cual necesita una clave para poder conectarse a la base de datos, para asignarla tienes que hacer lo siguiente:

  1. Usar el comando sudo passwd postrgress
  2. Pones la clave del sistema cuando te lo pidan en el terminal, como en la imagen
    clave sudo
  3. Por último, reinicias el terminal cerrándolo y abriéndolo nuevamente

Luego si todo está correcto, para acceder y usar el shell de psql debes hacer lo siguiente:

  1. Iniciar el servicio de postgres con el comando sudo service postgresql start
  2. Conectarte al servicio de postgres y abrir el psql shell con: sudo -u postgres psql

Estando todo en orden, deberías ver en el terminal que inicia con la línea de comandos postgress=#

postgress completo

Conexión de pgAdmin de Windows con PostgresSQL de WSL2


  • Una vez culminado con la instalación de postgres, descargas e instalas pgAdmin.

  • Luego, inicias postgres en el terminal:

      sudo service postgresql start
    
inicio postgres
  • Inicias pgAdmin y lo primero que te va a pedir es que ingreses tu clave, aquí ingresas la clave que definiste en el paso anterior.
clave pgAdmin
  • Una vez dentro de pgAdmin, vamos a crear un servidor. Para ello le damos clic derecho en Servers – Create – Server
crear server pgAdmin
  • En la pestaña general, en Name ponemos el nombre del servidor. Para este ejemplo la llamamos montando_platzi
servidor montando_platzi
  • En la pestaña Conexión, ponemos como Host name/address 127.0.0.1 (también puede ir localhost como indican en el curso)
configuracion conexio
  • En puerto, ponen 5432. Maintenance database y Username lo dejan con postgres como está por defecto.

  • En Password, ponen la clave que definieron en la parte de instalación de postgres


En algunas ocasiones puede pasar que les de un error de autenticación

error autenticacion

Para solucionarlo pueden resetear la clave haciendo lo siguiente:

  1. Ingresar sin clave con: sudo -u user_name psql db_name

  2. Resetear la clave con el siguiente comando:

     ALTER USER user_name WITH PASSWORD 'clave_nueva';
    

¿Qué es lo que hacen estos pasos?

El primer paso, te hace ingresar a la base de datos a la que el usuario tiene acceso. Cuando se crea una base de datos de PostgreSQL, ésta crea una serie de bases de datos automáticas por defecto y en el curso se ve más a detalle esa explicación. Como podemos imaginar, user_name y db_name hacen referencia al usuario y la base de datos que está relacionada a ese usuario.

En el segundo paso, lo que se hace es cambiar la clave para ese usuario alterando la tabla.

Ahora, luego de leer esta explicación te preguntarás ¿cómo puedo saber cuál es mi usuario para cambiarle la clave y poder crear mi server como Dios manda?

Como recordarás, gracias a la que lo hemos mencionado varias veces en este artículo el usuario por defecto es postgres y vimos que al momento de instalar para iniciar el psql sheel hacíamos uso de una parte del código del primer paso

sudo -u user_name psql

Ello nos mostraba la terminal con la línea de comandos postgress=#, una vez dentro de ello ponemos el comando

\l 

El cual nos mostrará una tabla con los usuarios y bases de datos:

relacion database postgres shell

Allí observaremos que si hemos seguido los pasos verás que existen 3 bases de datos por defecto (en mi caso creé la tabla test2 para hacer pruebas y por eso me salen 4 bases de datos). Como se puede observar en la tabla, todas tienen como Owner (Usuario) a postgres que es el nombre por defecto.

Para hacer el cambio de clave veremos que:

user_name = postgres

db_name = postgres

Por lo tanto, los comandos serían de la siguiente forma:

  1. sudo -u postgres psql postgres

  2. Resetear la clave con el siguiente comando:

    ALTER USER postgres WITH PASSWORD ‘tu_clave_nueva’;


PROBANDO QUE TODO FUNCIONE


Ahora tenemos que ver que todo vaya en orden y que nuestra conexión haya funcionado, para ello vamos a crear bases de datos tanto por el terminal de WSL2 como por pgAdmin y nos debe ser posible visualizarla desde cada lado.

Creamos una base de datos con pgAdmin:

  • Click derecho en Databases -> Create ->Database
creando database pgAdmin
  • En el pop up que sale le ponemos de nombre “prueba-db” y le damos a save
creacion tabla prueba-db
  • Allí vemos que se ve la tabla que hemos creado:
tabla prueba-db

Revisamos desde la terminal

Ahora accederemos por el psql shell para visualizar la tabla que hemos creado. Para ello ponemos el código

sudo -u postgres psql 

y luego en el psql shell ponemos

\l

para poder visualizar las bases de datos que tenemos. Si todo está correcto la tabla “prueba-db” que creamos con pgAdmin debe estar visible y aparece en la segunda fila de la tabla. (postgres los ordena por orden alfabético.

tabla databases

Creando las Bases de Datos desde la terminal

Ahora vamos a hacer el proceso inverso, vamos a crear una base de datos desde la terminal, la cual llamaremos “terminal_db” y que visualizaremos en pgAdmin. Para ello usaremos el comando:

CREATE DATABASE terminal-db;

Que luego verificaremos con el comando

\l

el cual nos permitirá ver todas las bases de datos que tenemos, donde saldrá la última que hemos creado.

tabla terminal_db en psql shell

Verificando desde pgAdmin

Le damos clic derecho en database, le damos refrescar y podremos ver la tabla que creamos en pgAdmin, por lo que todo el proceso ha sido correcto.

verificando tabla en pgAdmin

Y listo, de ésta forma podemos continuar con el Curso de PostgresSQL aprovechando las ventajas que nos ofrece WSL2 y la facilidad que nos brinda el entorno gráfico pgAdmin.

Escribe tu comentario
+ 2
Ordenar por:
2
6041Puntos
2 años

Hola, es cosa mía, a en este paso:
"Usar el comando sudo passwd postrgress"
Le sobra una “s” al final

3
4184Puntos
2 años

Buenas, en realidad sobran 2 “s”.
Lo ideal sería asi: sudo passwd postgres

2
13201Puntos
3 años

me salvaste amigo

1
20280Puntos
un año

Creo que a mí me sale un error. La terminal con WSL conecta a postgres, pero al usar el comando \l devuelve otras bases de datos. No estoy seguro pero me da la idea de que tengo dos instancias de postgres, una en windows y otra en ubuntu (wsl). Alguien sabe cómo arreglarlo?

1
27144Puntos
un año

Muchas gracias por el tutorial @Oxalc, me ayudó un montón 💚✨

1
23092Puntos
un año

Estoy viendo el curso justo hoy, pero realicé la instalación normal por windows, de igual modo que buen tutorial, debí verlo visto antes de instalar 😦

1
19892Puntos
2 años

Falto indicar que se debe inicializar el servicio luego de instalar

sudo service postgresql start
1
6032Puntos
2 años

Perfecto el aporte amigo, una pregunta, sabes cual es el comando para abrir pgadmin4 desde WSL Ubuntu. Más que todo por saber cómo hacerlo, gracias.

1
14860Puntos
2 años

Gracias por el aporte.

A los que leen despues, fijense muy bien en usar bien los comandos, sin errores de sintaxis.

Vuestro usuario por defecto es postgres

1
8192Puntos
2 años

Muchas gracias! Estuve buscando esto 👏