본문 바로가기
개발아닌개발/springboot

[springboot] 기존에 쓰던 DB를 Docker에 새로 올려보자(postgresql) -2

by 불청객 2023. 9. 6.
반응형

2023.09.05 - [개발아닌개발/springboot] - [springboot] 기존에 쓰던 DB를 Docker에 새로 올려보자(postgresql) -1

 

진행 전에

- Docker Decktop은 실행중이여야함

더보기

docker: error during connect: this error may indicate that the docker daemon is not running: Post "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/create": open //./pipe/docker_engine: The system cannot find the file specified. 

- Docker 회원가입도 진행함(결론은 명령어 입력 오류였지만...)

 

1. postgre 컨테이너 생성

cmd (또는 Windows Powershell) 실행

docker run --name [컨테이너명] -e POSTGRES_PASSWORD=[비밀번호] -p [로컬포트번호]:[도커포트번호] -d postgres

 

$ docker run --name postgress -e POSTGRES_PASSWORD=admin - p 5431:5432 -d postgres

- 컨테이너명 postgress

- 환경변수 비밀번호 admin

- 포트 번호 로컬5431, 도커5432

- 도커 백그라운드 실행 -d postgres 

★포트번호 연결이 중요★

이미 로컬에서 5432포트의 postgresql 을 사용중이였으므로, 로컬은 반드시 5432포트가 아닌 포트와 연결할 것.

도커는 5432로 고정(postgresql)

 

 

* 생성한 컨테이너 확인

$ docker container ls

반응형

 

2. postgre shell 입력창 표출

1에 생성한 컨테이너명을 입력

docker exec -it [컨테이너명] /bin/bash

 

$ docker exec -it postgress /bin/bash

 

3. postgre sql 접속

psql -U postgres

 

 

4. postgre sql DB 및 사용자 생성

유저 생성

create user [유저명] with password ['비밀번호'];

 

$ create user admin with password 'admin1';

  • 유저명 : admin
  • 비밀번호 : admin1

 

데이터베이스 생성 및 소유자 설정

create database [데이터베이스명] owner [유저명];

 

$ create database springdb owner admin;

  • 데이터베이스명 : springdb

 

\du

: 유저 리스트

\list 

: 데이터베이스 리스트

Springboot project와 연결할때 권한은 따로 설정할 필요X

 

5. springboot project 연결

application.yml

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    username: admin
    password: admin!1
    url: jdbc:postgresql://localhost:5431/springdb

포트번호와 데이터베이스 소유자 정보로 내용 변경

 

그럼 완료.

springboot 실행하면, create table 로그가 찍힘 >> 성공

 

 


진행 중 생겼던 오류...

포트번호 5432(default)에 postgresql을 사용중에 있는데 거기에 또 postgresql을... 쓰려다가 ...

더보기

SQL Error: 0, SQLState: 28P01

Caused by: org.postgresql.util.PSQLException: ?????????: ????? "admin"?? password ?????? ??????????

728x90
반응형

댓글