[컴] wsl2 에서 windows 의 postgresql 에 접근하기

접속하기 / postgres /

wsl2 에서 windows 의 postgresql 에 접근하기

Windows Sub-system for Linux 2(WSL2) 에서 Windows 에 설치된 postgre 에 접근하는 방법이다.

기본적으로 외부 host 에서 접근하는 방식과 같다.

절차

접근하기 위해 해야할 일을 간략하게 정리하면 다음과 같다.

  1. 방화벽 열기
  2. postgresql 에서 wsl 에서 접근 가능하게 설정 해주기
    • postgresql.conf
    • pg_hba.conf
  3. postgresql 재시작
  4. psql -h <windows-ip> -p 5432 -U postgres

방화벽 열기

  • 제어판 -> windows 방화벽 –> 고급설정
  • --> 인바운드 규칙
  • –> 새규칙
  • –> 규칙종류, ‘포트’
  • –> TCP, 특정로컬포트 5432
  • –> 연결허용
  • -> 속성 -> 원격 IP adress 추가, 172.0.0.1-172.254.254.254

간단하게 아래 command 를 사용해도 된다. (관리자 권한의 cmd 를 열어야 한다.)[ref. 2]

netsh advfirewall firewall add rule name= "Postgresql from wsl2" dir=in action=allow protocol=TCP localport=5432 remoteip=172.0.0.1-172.254.254.254

참고로 아래의 방법으로 사용법을 확인할 수 있다.

netsh advfirewall firewall add rule ?

postgresql 에서 wsl 에서 접근 가능하게 설정

<PostgresSQL>\$VERSION\data 에 가면 postgresql.confpg_hba.conf를 확인할 수 있다. 아래처럼 접근이 가능하게 해주자.

postgresql.conf

listen_addresses = '*'

pg_hba.conf

# TYPE  DATABASE        USER            ADDRESS                 METHOD

host    all             all             172.0.0.0/8             scram-sha-256

postgresql service 재시작

위의 수정된 설정을 적용하기 위해 postgres 를 restart하자.

wsl 에서 접속

psql -h <windows-ip> -p 5432 -U postgres 로 접근이 가능한지 확인해 보자. 접근이 잘되면 password 를 입력하라는 prompt 가 보인다.

아래처럼 wsl2에서 windows 와 wsl2 의 ip address 를 확인할 수 있다. windows ip address 는 windows 에서 ipconfig 로도 확인할 수 있다.

# windows 의 ip address
grep nameserver /etc/resolv.conf

# wsl2 의 ip address
hostname -I

See Also

  1. 쿠...sal: [컴][DB] PostgreSQL 에서 user 생성 방법
  2. 쿠...sal: [컴] wsl2 에서 mongodb 접근

Reference

  1. postgresql - How to connect to windows postgres Database from WSL - Stack Overflow
  2. Use netsh advfirewall firewall context - Windows Server | Microsoft Docs

댓글 없음:

댓글 쓰기