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에서 접속이 가능합니다.