postgresql 외부 접속 가능하게 설정하기

상황

  • vercel에 배포한 앱이 db 커넥션이 안되었다
  • aws 프리티어가 끝나서 로컬 컴퓨터에서 postgresql를 돌렸다
  • 공유기 포트 포워딩, 방화벽 인바운드 규칙 설정, 커넥션 스트링도 잘 작성해줬는데 이상하게 안되었다
  • 찾아보니까 postgresql 설정도 건드려야 했다

해결

  • C:\Program Files\PostgreSQL\13\data ; 내 postgresql 설치 경로이다
  • 바로 여기에 pg_hba.conf을 수정해주어서 해결했다

pg_hba.conf:86
1
2
# IPv4 local connections:
host all all 0.0.0.0/0 scram-sha-256
  • 86라인 정도에 127.0.0.1/320.0.0.0/0으로 수정해주면 된다
  • 따로 dbms를 재부팅 안 해줘도 바로 적용되었다

참고

postgresql commands

SQL Shell (psql) 에서 명령
postgreql 처음 써보는 데 사용한 명령어 및 커넥션 설정 정리

psql

psql commands
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
-- 데이터베이스 생성
CREATE DATABASE student;

-- 유저 생성
CREATE USER sung WITH PASSWORD '1234';

-- 권한 부여
GRANT ALL PRIVILEGES ON DATABASE student TO sung;

-- 특정 유저로 데이터베이스 접속
\c student sung

-- 데이터베이스 목록 보기
\l

-- 테이블 목록 보기
\d
\dt

-- 테이블 칼럼 보기
\d "User"

-- select query
-- 릴레이션을 못 찾았다고 하면 테이블명에 따옴표 붙이기
select * from "User";
  • 대소문자 구분은 안 해도 된다

connection

application.properties
1
2
3
4
5
6
7
spring.datasource.url=jdbc:postgresql://localhost:5432/student
spring.datasource.username=sung
spring.datasource.password=1234
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.properties.hibernate.format_sql=true

jdbc

pgAdmin

  • GUI로 DBMS 다루기

참고