[데브코스] MySQL, Docker 사용법

Updated: Categories:

W2D2 - MySQL, Docker를 설치하고 사용법에 대해 알아보자

MySQL

  • DB가 커진다면 용량증대(Scaling) 방식을 사용해야함
  • Scale-Up : 서버에 CPU, Memory 추가
  • Scale-Out : 서버 추가하기. 클러스터 구성이지만 MySQL은 지원 X -> Master-Slave 방식 사용.
    • Master-Slave : Master는 모든 작업이 가능하고, Slave는 읽기 작업만 가능하다


세션

  • 사용자의 방문을 논리적인 단위로 나눈 것
  • 세션 생성과 종료 시간을 정할 수 있어 한 사용자가 여러개의 세션을 가질 수 있다. (Google Analytics 방식)
  • 세션으로 경유지(채널)나 사용자의 행동을 분석해 저장, 마케팅에 활용가능

간단 실습

  • 유저가 사이트 방문시 생성되는 세션의 정보 테이블을 만들어보자~
  • 문법 다 까먹어서 다시 쓰면서 리마인드…

세션 정보

컬럼 타입 속성
id int NOT NULL
AUTO_INCREMENT
PRIMARY_KEY
user_id int NOT NULL
created timestamp NOT NULL
DEFAULT CURRENT_TIMESTAMP
channel_id int NOT NULL
FOREIGN KEY
CREATE TABLE session(
  id INT NOT NULL AUTO_INCREMENT,
  user_id INT NOT NULL,
  created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
  channel_id INT NOT NULL,
  channel VARCHAR(32) NOT NULL,
  PRIMARY KEY(id),
  FOREIGN KEY(channel_id) REFERENCES channel(id)
)

채널 정보

컬럼 타입 속성
id int NOT NULL
AUTO_INCREMENT
PRIMARY_KEY
channel varchar(32) NOT NULL
CREATE TABLE channel(
  id INT NOT NULL AUTO_INCREMENT,
  channel VARCHAR(32) NOT NULL,
  PRIMARY KEY(id)
)


Docker로 MySQL 사용하기

> dokcer pull mysql/mysql-server:8.0
  • 이미지 -> 컨테이너화
> docker run --name=mysql_container --restart on-failure -d mysql/mysql-server:8.0
  • MySQL 초기 비밀번호 찾기
> docker logs mysql_container 2>&1 | findstr GENERATED
  • MySQL 접속
> docker exec -it mysql_container mysql -u root -p