Mysql 설치

mysql 버전 조회

먼저 우리가 도커로 설치할 수 있는 mysql의 버전을 조회해보자. 조회하는 명령어는 아래와 같다.

docker search mysql

mysql의 설치에 앞서 경로를 생성해보자. -p 옵션은 해당경로나 상위경로가 없으면 생성하라는 옵션이다.

mkdir -p /data/mysql

도커 실행

docker run은 도커 이미지가 없으면 자동으로 pull 과정을 거치기 때문에 따로 pull을 하지 않아도 된다. -p외부포트번호:도커내부포트번호 를 의미한다. 도커는 이미지를 제거하게 되면 DB정보 또한 날아가게 된다.  이를 대비하기 위해 volume을 로컬 경로로 저장하는 것이 좋다. 이는 -v 옵션을 통해 가능하며, 로컬저장소:저장할 도커 내부 경로 로 설정하면 된다.

docker pull mysql

docker run -d \
    --name=mysql --restart=unless-stopped \
    -p 3306:3306 \ 
    -v /data/mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=비밀번호 \
    mysql:latest

내부환경설정

도커 내부 설정을 하기 위해서 docker exec -it mysql bash를 실행하자. 이는 mysql이라는 도커 환경에서 bash를 실행해달라는 의미이다. 접속이 되었다면 mysql을 접속해보자. 비밀번호는 위 도커에서 설정한 비밀번호이다.

docker exec -it mysql bash
mysql -u root -p

MySQL계정 생성

show databases; 는 DB목록을 보여달라는 명령어이며, select user,host from user; 명령어는 user라는 이름의 Table에서 user, host 컬럼을 보여달라는 의미이다.  그 아래 계정 생성 명령어에서 ip는 localhost나 %를 주로 사용하는데, %는 모든 ip를 허용하겠다는 의미이다.

use mysql
show databases;
select user,host from user;

create user 계정명@'ip' identified by '비밀번호';
grant all privileges on *.* to 계정명@'ip';
flush privileges;
quit;