Docker로 MySQL 사용하기

Docker를 이용하여 MySQL 사용

docker hub에서 MySQLofficial image를 이용하여 MySQLdocker로 실행 할 수 있습니다. docker hub의 레포는 여기를 누르시면 볼 수 있습니다.

사용 방법

1
docker pull mysql

일단 docker hub에서 mysql를 풀받아 이미지를 내려받습니다. 풀 받을때 mysql:tag와 같이 tag를 입력하여 버전을 선택 할 수 있고 tag를 지정하지 않으면 latest버전 이미지를 갖고옵니다.

1
docker run -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=pwd --name mysql mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password

-d옵션을 통해 백그라운드로 docker를 실행합니다.
-p옵션을 통해 3306포트를 3306포트로 연결합니다.
--restart=always 옵션을 사용하면 컴퓨터를 재시작 하더라도 자동으로 실행시켜 줄 수 있습니다.
-e MYSQL_ROOT_PASSWORD=pwd 옵션에서 pwd대신 사용하실 password를 입력하시면 됩니다.
--name 옵션을 통해 docker의 이름을 mysql로 지정합니다.
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 옵션을 통해 한글깨짐을 방지합니다.
--default-authentication-plugin=mysql_native_password 옵션을 통해 인증 플러그인을 변경합니다.

1
docker ps

위 코드를 통해 현재 실행중인 도커 리스트를 볼 수 있습니다.
sequel proworkbenchGUI프로그램을 통해 MySQL에 접속하려면 다음과 같은 caching_sha2_password 에러가 발생합니다.

비밀번호를 sha2방식으로 암호화 하지 않아 생기는 오류입니다.

1
docker exec -i -t mysql bash

위 코드로 mysql docker에 접속합니다.

1
mysql -u root -p

mysql 설정 때 입력하였던 비밀번호를 이용하여 루트로 접속합니다.

1
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';

your password부분을 설정하였던 비밀번호로 대치 후 입력합니다.

위와 같이 쿼리가 정상적으로 실행 됐다면 sequel pro, workbench와 같은 GUI에서 접속이 가능합니다.

공유하기