접속하기 / postgres /
wsl2 에서 windows 의 postgresql 에 접근하기
Windows Sub-system for Linux 2(WSL2) 에서 Windows 에 설치된 postgre 에 접근하는 방법이다.
기본적으로 외부 host 에서 접근하는 방식과 같다.
절차
접근하기 위해 해야할 일을 간략하게 정리하면 다음과 같다.
- 방화벽 열기
- postgresql 에서 wsl 에서 접근 가능하게 설정 해주기
- postgresql.conf
- pg_hba.conf
- postgresql 재시작
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.conf
와 pg_hba.conf
를 확인할 수
있다. 아래처럼 접근이 가능하게 해주자.
- “쿠…sal: [컴][웹] PostgreSQL 설치 -> pg_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 로도 확인할 수 있다.
- Accessing
network applications with WSL | Microsoft Learn : wsl 에서 접근할 때
사용할 windows ip 는
ip route show | grep -i default | awk '{ print $3}'
로도 확인할 수 있다.
# windows 의 ip address
grep nameserver /etc/resolv.conf
# wsl2 의 ip address
hostname -I
댓글 없음:
댓글 쓰기