주뇽's 저장소
[Spring JPA] Docker를 이용하여 MySQL 데이터베이스 연결하기 본문
728x90
반응형
H2 인메모리 데이터베이스는 서버 재시작시 정보가 휘발되므로 MySQL로 데이터베이스 변경
1. Docker를 사용해 MySQL 실행하기
docker run --detach --env MYSQL_ROOT_PASSWORD=dummypassword --env MYSQL_USER=todos-user --env MYSQL_PASSWORD=dummytodos --env MYSQL_DATABASE=todos --name mysql --publish 3306:3306 mysql:8-oracle
docker run \ # Docker 컨테이너를 실행하는 기본 명령어
--detach \ # 컨테이너를 백그라운드에서 실행 (대화형 모드가 아님)
--env MYSQL_ROOT_PASSWORD=dummypassword \ # 환경 변수 설정: MySQL 루트 사용자의 비밀번호
--env MYSQL_USER=todos-user \ # 환경 변수 설정: 새로운 MySQL 사용자 이름
--env MYSQL_PASSWORD=dummytodos \ # 환경 변수 설정: 새로운 MySQL 사용자의 비밀번호
--env MYSQL_DATABASE=todos \ # 환경 변수 설정: 생성할 MySQL 데이터베이스 이름
--name mysql \ # 컨테이너에 'mysql'이라는 이름 지정
--publish 3306:3306 \ # 호스트의 3306 포트와 컨테이너의 3306 포트 연결 (포트 매핑)
mysql:8-oracle # 사용할 이미지 이름과 태그 (여기서는 Oracle의 MySQL 8 버전)
2. build.gradle에 mysql 의존성 추가
runtimeOnly 'com.mysql:mysql-connector-j'
3. application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/todos # 데이터베이스 URL 설정: JDBC를 사용하여 MySQL 데이터베이스에 연결합니다. 여기서 'localhost:3306'은 데이터베이스 호스트 주소와 포트이며, 'todos'는 데이터베이스 이름입니다.
spring.datasource.username=todos-user # 데이터베이스 사용자 이름 설정: 앞서 Docker에서 설정한 사용자 이름 'todos-user'를 사용합니다.
spring.datasource.password=dummytodos # 데이터베이스 사용자 비밀번호 설정: Docker에서 설정한 'dummytodos' 비밀번호를 사용합니다.
spring.jpa.hibernate.ddl-auto=update # JPA 하이버네이트 설정: 데이터베이스 스키마 자동 업데이트 설정. 이 설정은 애플리케이션 시작 시 데이터베이스 스키마를 현재 애플리케이션 모델에 맞게 자동으로 업데이트합니다.
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect # JPA 하이버네이트 설정: MySQL8에 최적화된 SQL 구문을 생성하기 위해 사용하는 방언(Dialect)를 지정합니다.
4. 확인
docker exec -it mysql bssh
위 명렁어를 통해 생성한 쉘 환경에서 제어
mysql -u root -p
- 위 명령어를 실행하면 비밀번호를 입력하라는 문구가 나온다. 이 때 설정했던 루트 사용자 비밀번호를 입력해주면 된다.
--env MYSQL_ROOT_PASSWORD=dummypassword \ # 환경 변수 설정: MySQL 루트 사용자의 비밀번호
데이터 베이스 보기
SHOW DATABASES;
todos 테이블 사용
USE todos;
todos에 있는 모들 테이블 보기
SELECT * FROM todo;
'웹개발 > SpringBoot' 카테고리의 다른 글
[Spring] DAO, DTO의 차이 (1) | 2023.12.08 |
---|---|
[Spring Framework] 로그인과 로그아웃과 같은 인증을 쉽게 구현하게 도와주는 Spring Security (2) | 2023.12.05 |
[Trouble] JAVA Spring jsonPath 함수 사용 시 에러 (4) | 2023.11.25 |