카테고리 없음
로컬테스트를 위한 MySql 설치하기 (with Docker )
simongs
2020. 12. 17. 01:21
실행환경
- Windows 10
- Docker version 20.10.0, build 7287ab3
진행순서
1. MySQL 이미지를 DockerHub로부터 가져온다.
C:\Users\chopo>docker pull mysql:latest
latest: Pulling from library/mysql
Digest: sha256:365e891b22abd3336d65baefc475b4a9a1e29a01a7b6b5be04367fcc9f373bb7
Status: Image is up to date for mysql:latest
docker.io/library/mysql:latest
2. 가져온 이미지의 정보를 확인한다.
C:\Users\chopo>docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest ab2f358b8612 4 days ago 545MB
3. MySQL 이미지를 수행한다.
windows
C:\Users\chopo>docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password --name simons-mysql -v C:\workspace\workspace-docker\mysql_repo:/var/lib/mysql mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
a2009d0a02c0b38e6a84bb62291c397d903be6f68b2dca7901cbc02e3de708ca
mac
```
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=qwerasdf --name simons-mysql8 -v /Users/chopokmado/workspace/workspace-docker/localdb/mysql8:/var/lib/mysql mysql:latest
```
-d : Daemon, 즉 백그라운드로 수행한다.
-p 3306:3306 : 앞 3306 은 현재 로컬 PC의 포트를 의미하고 뒤의 3306은 수행한 컨테이너 내부의 3306 포트를 의미한다. 포트포워딩을 설정한다.
--name : 해당 컨테이너의 name을 설정한다.
-v 로컬경로:컨테이너경로 : 컨테이너가 shutdown 되어도 데이터가 보관될 수 있도록 로컬PC의 경로를 매핑한다.
한글을 위한 옵션 설정
4. 현재 활성화된 컨테이너 프로세스 정보를 확인한다.
C:\Users\chopo>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a2009d0a02c0 mysql "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp simons-mysql
5. container id를 통해서 해당 컨테이너의 terminal interface에 접근한다.
C:\Users\chopo>docker exec -it a2009d0a02c0 bash
root@a2009d0a02c0:/#
6. 사용자를 추가한다.
root@a2009d0a02c0:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.22 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> CREATE USER 'chopokmado'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'chopokmado'@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
7. 로컬PC의 DB 클라이언트 프로그램을 통해서 접속한다.
- Heidisql 사용