1. 마리아 DB 이미지를 아래 명령어로 다운 받자.
docker pull mariadb
2. 마리아 DB를 컨테이너에 추가 및 구동해보자.
docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mariadb mariadb
- -e MYSQL_ROOT_PASSWORD=1234 : root계정의 pw를 1234로 지정.
- --name mariadb : 컨테이너 이름을 mariadb라 지정
- mariadb : 다운로드 받은 이미지의 이름
하지만 다음의 에러를 뱉었다.
docker: Error response from daemon: Ports are not available:
listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address
(protocol/network address/port) is normally permitted.
구글링 해보니, window상에서 돌아가고 있는 MYSQL과 포트가 겹치기 때문이라고 한다.
MySQL과 Mariadb port겹칠 때 해결법
1. win키 + r로 실행창을 열고 services.msc라고 입력하면 다음의 창이 뜬다.
2. 우클릭하여 속성에 들어가면 다음과 같은 화면을 볼 수 있다.
3. 시작유형을 수동으로 바꾸어 주자.
컴퓨터 부팅 시 자동으로 MYSQL이 실행되지 않도록 설정해주는 것이다!
이제 내가 MYSQL을 수동으로 구동하지 않는 이상 MYSQL이 스스로 실행되는 일은 없다.
따라서 Mariadb와 port가 겹치는 것도 신경쓰지 않아도 된다!
아님 그냥 MYSQL자체를 uninstall하는 방법도 좋다.
그 다음 다시 2번의 명령어를 입력하니 또 다음의 에러를 볼 수 있었다.
이전에 만들려 시도했다가 실패한 컨테이너와 지금 내가 만드려는 컨테이너 사이에서 충돌이 일어난 것이다.
docker: Error response from daemon: Conflict. The container name "/mariadb" is already in use by container "44e9379dbfd8a35b26ea06347b3b6db3214fd5f64f8555f1e661aff22caca7a1". You have to remove (or rename) that container to be able to reuse that name.
이전에 만들려고 시도했던 컨테이너를 아래의 명령어로 삭제해주자.
# 2번에서 설정한 컨테이너 이름에 따라 rm 다음의 명령어가 달라진다.
# 즉, mariadb는 내가 2번에서 컨테이너 추가시 mariadb라고 만든 "컨테이너의 이름"
docker rm mariadb
이제 다시 처음으로 돌아가 1번과 2번 과정을 완료했다.
3. MariaDB 접속
docker exec -it mariadb /bin/bash
mysql -u root -p
여기까지 명령어를 입력하면 password를 입력하라고 한다.
2번에서 지정해주었던 비밀번호를 입력하면 된다.
나의 경우 1234
그러면 다음과 같이 환영해준다.
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.11-MariaDB-1:10.5.11+maria~focal mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
4. Mariadb에 user를 등록해주자.
create user 'suzy'@'%' identified by '1234';
grant all privileges on test.* to 'suzy'@'%';
flush privileges;
show databases;
[참고] Mariadb가 실행중인지 확인할 수 있는 명령어
docker ps -a
🧐 의문점
Mariadb를 설치하긴 했는데..docker를 통해 설치해서 그런지
파일경로가 어떻게 되는지.. 음 잘 모르겠다.
아래 명령어를 통해 mariadb 설치 경로를 알 수 있다고 해서 해봤는데,
show variables like 'datadir';
다음의 결과값을 얻을 수 있었다.
봐도 잘 모르겠다. 앞부분이 생략되서...
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| datadir | /var/lib/mysql/ |
+---------------+-----------------+
🔽 Reference
'기타 > 클라우드' 카테고리의 다른 글
클라우드 # 클라우드 컴퓨팅 / 서비스모델 / 개발자 공고의 클라우드 역량 (0) | 2021.07.31 |
---|---|
도커(Docker)와 쿠버네티스(Kubernetes) (0) | 2021.07.07 |
마이크로 서비스 아키텍쳐(MSA)란? (0) | 2021.07.07 |
컨테이너 오케스트레이션 부터 쿠버네틱스 까지 (0) | 2021.07.07 |
Docker(도커)란? (0) | 2021.07.07 |