DBeaver : 원격연결, 로컬연결 setting시 연결 오류 해결법
<원격DB 연결>
AWS Postgresql RDS에 연결한다고 가정하면
server host에 aws 리소스 이름(ARN)
db 이름
db에 설정한 password를 입력.
connection test가 성공적이면 정상연결 된 것.
<원격DB 연결 실패>
연결 실패시,
인코딩 문제가 있는 에러 메세지가 뜨는 경우가 있는데
대부분 에러 메세지 내용은
db를 public으로 설정해놓지 않았거나,
remote db로 들어오는 인바운드 규칙에서 필터링 되어 생기는 연결 실패 문제.
remote db setting에서 vpn 설정, access 설정을 손 봐야한다.
<로컬DB 연결>
remote db가 아니라 local에 db를 생성하여 연결하는 것을 의미한다.
project의 connection에서 각 SQL에 맞는 Port를 알아서 지정해준다. (postgre : 5432)
local host이므로
DBeaver 설치시 입력했던 admin용 password를 입력해야 정상적으로 연결된다.
<로컬DB 연결실패>
(pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)
1. pg_hba.conf 파일 수정
에러가 뜬다면 pg_hba.conf 파일을 열람해본다.
보통 경로는 C:\Program Files\PostgreSQL\12\data이다.
hba = host-based authentication,
conf = configuration의 약자이다.
클라이언트 인증에 쓰이는 파일의 이름은 pg_hba.conf이며
데이터베이스 클러스터의 데이터 디렉토리에 저장되는 환경 설정 파일로 제어된다.
pg_hba.conf 파일은 디렉토리가 initdb에 의해 초기화 될 때 설치된다.
pg_hba.conf는
PostgreSQL에 접속하는 클라이언트에 대한 인증 설정을 설명하는 파일이다.
텍스트 에디터로 해당 설정 중 접근가능 네트워크 설정이 제대로 돼있는지 확인한다.
(.conf 파일의 최하단에 위치함)
- 연결에 사용되는 연결 유형
- 클라이언트 IP 주소 범위(연결 유형에 해당하는 경우)
- 데이터베이스 이름
- 사용자 이름
- 인증 방법
- 연결 타입
- 클라이언트 주소
- 데이터베이스 이름
- 사용자 이름
이 일치하는 첫 번째 레코드는 인증을 수행할 때 사용된다.
- 레코드 하나가 선택되고 인증이 실패한 경우 후속 레코드는 고려되지 않는다.
(순서를 따져서 인증이 진행된다.)
- 일치하는 레코드가 없으면 액세스가 거부된다.
2. pgAdmin 프로그램에서 로그인 권한 부여
간혹, 로컬 연결이라해도 엉뚱한 계정에 로그인 권한 및 DBA권한이 부여됐을 수도 있다.
Login/Group Roles에 어떤 계정이 있는지 살펴보고
해당 계정의 SQL문을 열람하여 권한이 제대로 부여돼있는지 확인해야한다.
권한이 없는 사용자로 Local DB 연결시에도 위와 같은 연결 오류가 발생한다.
3.서버 그룹에 첫 서버 개설 시 주의사항
'postgres' role이 기본적으로 들어간다.
첫 사용자로 'postgres'이외의 사용자를 설정하는 것이 아니라
'postgres' role 설정 이후에 다른 role들을 설정하는 것.
Dbeaver로 DB작업을 수행하고자 할 때는
Dbeaver
postgresql 드라이버
EDB에서 배포하는 postgresql 패키지(postgresql server, pgadmin 등)
이 필요하다.
대부분 패키지에 딸려서 나오니까
postgresql패키지랑 - dbeaver만 설치해주면 된다.
댓글
댓글 쓰기