[데브코스] MySQL, Docker 사용법
Updated: Categories: TILW2D2 - 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