Database/Maria,Mysql

인프런 - 따라하며 배우는 MySQL on Docker 학습 정리 - 기본

bluebamus 2022. 1. 8.

 

1. 기본 정리

  1) 외부에서 Mysql container 접속 하는 방법 (port 포워딩 설정)

 

docker run -it --name db001 -p 33306:3306 -e  MYSQL_ROOT_PASSWORD="root" -d percona:5.7.30

  2) 외부에서 접속 방법

 

mysql -uroot -p -h {docker_host_ip}

 

  3) docker 삭제시 발생하는 데이터 손실방지를 위한 저장 방법

    - 폴더를 생성하여 volume으로 공유하는 방법 

    - 아래 테스트 코드는 최상위 폴더 기준 /db 폴더를 만드는 것을 가정함

    * 추가 정보 : my.conf 파일이 centos의 경우 /etc/my.cnf, ubuntu의 경우 /etc/mysql/my.cnf에 위치한다. 

      해당 이미지의 경우 /etc/my.cnf 파일에 include되어 있는 곳에 다른 파일 명으로 존재하는 것을 확이하였다.

      폴더 위치 : /etc/percona-server.conf.d/

      파일 명 : mysqld.cnf

      centos를 사용하지 않은지 오래되어서 정확하게 알 수 없지만, percona:5.7.30 기반으로는 해당 위치를 참조하자

mkdir -p /db/db001/data

chmod 777 -R /db

sudo docker run -it --name db001 -p 3306:3306 -v /db/db001/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="root" -d percona:5.7.30

cd /db/db001/data

  4) 컨테이너 외부에서 접근, 수정 가능 하도록 log & config volumne 설정

mkdir -p /db/db001/log /db/db001/conf
chmod 777 -R /db/db001/log /db/db001/conf

  최소한의 설정값 my.conf (644 퍼미션 요구됨)

  * server-id와 report_host의 값은 유니크 해야함

[mysqld]
log_bin                     = mysql-bin
binlog_format               = ROW
gtid_mode                   = ON
enforce-gtid-consistency    = true
server-id                   = 100
log_slave_updates
datadir                     = /var/lib/mysql
socket                      = /var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links              = 0

log-error                   = /var/log/mysql/mysqld.log
pid-file                    = /var/run/mysqld/mysqld.pid

report_host                 = db001

[mysqld_safe]
pid-file                    = /var/run/mysqld/mysqld.pid
socket                      = /var/lib/mysql/mysql.sock
nice                        = 0

  명령어 입력

sudo docker run -it --name db001 -p 3306:3306 -v /db/db001/data:/var/lib/mysql -v /db/db001/log:/var/log/mysql -v /db/db001/conf:/var/percona-server.conf.d -e MYSQL_ROOT_PASSWORD="root" -d percona:5.7.30

 

댓글