WSL 세팅
WSL은 window에서 리눅스를 사용할 수 있도록 해준다.
리눅스 기반에서 docker를 설치할 예정
Docker를 사용한 Mysql 세팅
#의존성 패키지 설치
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
#Docker 공식 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
#docker Rpository 추가
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#Docker 설치
sudo apt update
sudo apt install docker-ce
# 설치 확인
sudo docker --version
#docker 시작
sudo service docker start
docker ps
Docker hub에서 mariaDB 검색
#도커 이미지 다운로드
docker pull mariadb
# 도커 이미지 확인
docker images
#이미지를 사용하어 컨테이너 생성
docker run --detach --name mariadb --env MARIADB_ROOT_PASSWORD=123 -p 3306:3306 mariadb:latest
#docker container 상태 확인
docker ps
# 컨테이너에 접속
docker exec -it some-mariadb bash
#컨테이너에서 mariadb DBMS 접근(위 설정에서 비밀번호는 123)
mariadb -u root -p
# 데이터 베이스 조회
show databases;
# 데이터베이스 생성
create database portfolio;
# 데이터베이스 접속
use portfolio;
# 쿼리 실행 확인
select now()
# timezone 세팅
SET global TIME_ZONE='+09:00';
SET session TIME_ZONE='+09:00';
# 확인
select now();
# 계정생성
CREATE USER 'adm'@'%' IDENTIFIED BY '123';
# 권한부여
GRANT ALL PRIVILEGES ON portfolio.* TO 'adm'@'%';
# 권한 부여 반영
FLUSH PRIVILEGES;
Docker volume
Volume을 설정하지 않는다면 도커의 컨테이너를 삭제 시 mariaDB의 데이터 또한 모두 삭제 된다.
Volume을 사용하여 컨테이너 내부와 host의 디렉토리를 공유 하는것으로 container가 삭제 되더라도 volume을 사용한다면 신규 컨테이너에서 host의 파일을 읽기 때문에 데이터의 손실이 없다.
Ex
docker-compose
services:
mariadb:
container_name: mariadb
image: mariadb:(버전 기재)
restart: always
# 환경에 따라 변경
expose:
- "3306"
volumes:
# DB 데이터 저장 디렉터리
- ./data:/var/lib/mysql
# 설정 파일 저장될 위치
- ./config:/etc/mysql/conf.d
environment:
# 정의하지 않으면 실행 시, 에러가 발생합니다.
- "MYSQL_ROOT_PASSWORD=(root 계정의 PASSWORD 정의)"
# 컨테이너 내의 시스템 타임존을 우리나라에 맞게 설정합니다.
- "TZ=Asia/Seoul"
command:
# 위 명령어를 사용하지 않으면, 일부 설정이 latin으로 설정됩니다.
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
https://github.com/Kmmanki/portfolio_was
'웹 정리 > 웹 포트폴리오 만들기' 카테고리의 다른 글
WAS 5차 (JPA, Swagger 설정을 사용한 게시물 등록) (0) | 2024.07.26 |
---|---|
WAS 4차 (ELK, Logback, Jenkins를 사용한 배치 컨트롤 및 로그수집)_긴급 (0) | 2024.06.13 |
WAS 2차 (멀티모듈 프로젝트 세팅) (0) | 2024.05.28 |
WAS 1차 (프로젝트 생성 및 라이브러리 추가) (0) | 2024.05.08 |
WAS 0차 (구성) (0) | 2024.05.07 |