티스토리 뷰
docker를 이용하여 MySQL의 Container를 띄우고 접근하는 방법까지만 정리하여 보려고 합니다.
MySQL docker image download
이곳에 가서 자신이 사용하고 싶은 버전을 가져옵니다.
https://hub.docker.com/_/mysql
자신이 원하는 적당한 버전을 받아서 사용하도록 합니다.
$ sudo docker pull mysql:[version]
뒤에 버전을 넣지 않고 그냥 mysql 까지만 넣게 되면 마지막 버전을 가져오게 됩니다.
$ docker pull mysql
이미지가 받아졌는지 확인 ( 솔찍히 하면서 프로그래스 막 지나가면서 complete 보이기는 합니다. )
$ docker images
docker run를 이용하는 방법
$ docker run -d -p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
--name mysql-example \
-v /data:/var/lib/mysql mysql:8.0.17 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci
그냥 바로 실행을 하는건데 3306 포트로 받아서 3306으로 넣어주는 방법입니다.
저는 mysql 버전은 8.0.17을 사용하였습니다.
뒤에 --character 부터는 한글에 대한 문제가 발생 할 수 있어서 넣어준 부분입니다.
docker-compose를 이용하는 방법
docker-compose.yml 파일을 생성하여 줍니다. 이 방법이 조금 더 아름답기 때문에 저는 이걸 추천합니다.
version: "3"
services:
mysqlexample:
image: mysql:8.0.17
container_name: mysql-example
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: "password"
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- /data:/var/lib/mysql
위에 적은 부분들과 1:1로 매칭되므로 따로 정리하지 않습니다.
실행 방법
$ docker-compose up -d
docker container list 출력
$ docker ps -a
MySQL container bash shell connect
$ docker exec -it mysql-example bash
MySQL Server 접속하기
root@da6eab402727:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.17 MySQL Community Server - GPL
Copyright (c) 2000, 2019, 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>
mysql>
mysql>
mysql>
local에 설치하고 접속하는 방법과 동일하게 하여 줍니다. password는 이미 위에 docker container를 만들때 설정하여 주었습니다.
(password)
사용자 생성 및 권한 부여
mysql> CREATE USER 'player'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'player'@'%';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
Bye
root@da6eab402727:/#
player라는 계정을 만들고 %를 이용하여서 외부에서 들어올수 있도록 만들었습니다.
패스워드는 예제라 password로 지정하였습니다. :D
테스트
DBeaver 같은걸로 테스트 해보면 됩니다.
'Backend > Docker' 카테고리의 다른 글
Docker. .dockerignore file (0) | 2020.05.03 |
---|---|
Docker. docker file (Docker Image)의 기본 구성 (0) | 2020.05.03 |
Docker. compose로 Nginx proxy + Web + php 구성하기 (0) | 2020.04.30 |
docker container commit 하고 push 하기 (0) | 2020.04.01 |
docker hub에 개인 저장소 생성하기. Push 아닙니다! (0) | 2020.04.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- tomcat
- nodejs
- Python
- github
- Kotlin
- php
- android
- enum
- cocoapods
- Xcode
- SWIFT
- windows10
- Spring
- Java
- rxswift
- ubuntu
- Linux
- CentOS
- git
- Codable
- centos8
- docker
- MySQL
- Gradle
- intellij
- war
- ios
- go
- golang
- Windows
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함