Docker를 이용하여 MySQL 사용
docker hub
에서 MySQL
의 official image
를 이용하여 MySQL
을 docker
로 실행 할 수 있습니다. 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 pro
나 workbench
등 GUI프로그램
을 통해 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
에서 접속이 가능합니다.