WSL 세팅

WSL은 window에서 리눅스를 사용할 수 있도록 해준다.

리눅스 기반에서 docker를 설치할 예정

https://velog.io/@darktrace1/%EC%9C%88%EB%8F%84%EC%9A%B011%EC%97%90-UbuntuWSL2-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

윈도우11에 Ubuntu(WSL2) 설치하기

윈도우11에 Ubuntu(WSL2) 설치하기

velog.io


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

 

GitHub - Kmmanki/portfolio_was: portfolio

portfolio. Contribute to Kmmanki/portfolio_was development by creating an account on GitHub.

github.com

 

+ Recent posts