Tengo grandes problemas para conectarme a PostgreSQL, instalado en WSL2 Ubuntu, desde el host de Windows 10.
Esto es lo que he hecho hasta ahora.
Configure lo siguiente en pg_hpa.conf
local all postgres md5
host all all 0.0.0.0/0 md5
Establezca lo siguiente en postgresql.conf
listen_addresses = '*'
Probé con éxito que puedo conectarme con psql -U postgres , por lo que la contraseña debe configurarse correctamente.
Cuando intento conectarme usando pgAdmin o psql desde el host de Windows 10, aparece el siguiente error.
error: could not connect to server: FATAL: password authentication failed for user "postgres"
¿Algo más que pueda cambiar en pg_hpa.conf u otras configuraciones de PostgreSQL que puedan ayudar?
Estoy pensando que podría tener algo que ver con que WSL2 tenga su propia IP, incluso si las conexiones de los hosts se hacen parecer provenientes de localhost. La conexión parece haberse realizado, pero la autenticación falló por algún motivo cuando no se realiza desde Ubuntu.
Más tarde probé con nc -l 5432 y, por alguna razón, el puerto 5432 no llegó a WSL2 en el host local, pero sí en WSL-2 IP. Si uso cualquier otro puerto libre, por ejemplo, 5434 (gratis tanto en Windows como en WSL-2), funciona bien y puedo conectarme al servicio PostgreSQL en WSl-2 a través de localhost en Windows.
No cambié ninguna opción desde la pregunta original publicada, solo el puerto.
Actualización: resulta que, de hecho, hubo un proceso de una instalación anterior de postgres en Windows que estaba escuchando en el puerto 5432. Esta causa lo explica todo. ..:/
Como se señaló en el póster original, asegúrese de no tener un servicio de Windows que ya se esté ejecutando y escuchando en ese puerto. En mi caso fue una instancia de PostgreSQL instalada como servicio de Windows. Cualquiera que sea el soporte de red subyacente, parece que puede tener un proceso/servicio escuchando en el puerto 5432 en Windows, así como un proceso Linux separado escuchando en el puerto 5432 desde WSL2.
No fue suficiente para detener el servicio de Windows PostgreSQL. Falló la conexión desde el programa de instalación de Windows pgAdmin4. También deshabilité el servicio desde la consola de Servicios de Microsoft.
También necesitaba detener e iniciar WSL2 postgresql. Solo entonces pude conectarme con éxito desde mi programa de instalación de Windows pgAdmin4 a WSL2 postgreSQL