본문 바로가기

개발/개발 - 기본 설정

Docker를 이용하여 MariaDB 설치하기(+에러해결)

1) cmd를 켜서 마리아디비 설치

docker pull mariadb

⇒ 알아서 막 설치함

 

 

docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb

 

  • 3306 : 데이터베이스도 무언가 제공해주는 하나의 서버이기 때문에
               통신을 하고 싶으면 포트번호 를 맞춰야 함
  • restart항상 할거다
  • Root password 는 root다

 

 

 

 

2) docker: invalid reference format. 에러 해결

docker: invalid reference format. See 'docker run --help'.

⇒ 이 에러가 떴다…

    하이픈 2개인데 1개쳐서 났던 에러였음 해결 완

    (노션에서 치고 복사했더니 하이픈 2개가 1개가 되어서 났던에러)

 

 

 

 

3) docker: Error response from daemon: Ports are not available: 에러(포트번호 이미 사용중)

1) 기존에 MySQL을 설치한 적이 있거나
2) 시스템에서 사용자가 못쓰게 점유
= 이 두가지 경우에 발생하는 에러이다.

 

나는 기존에 MySQL 설치한적이 없기에 2번에 해당했음(시스템에서 못쓰게 함)

 

 

1) 파워셸 관리자모드 실행
2) 잡았다 요놈 

 

netsh interface ipv4 show excludedportrange protocol=tcp

⇒ 우선 침착하게 이걸 cmd창에 쳐준다

 

 

3236 ~ 3335 는 점유중 ^^

 

 

 

점유 포트 전부 초기화해버리자!

net stop winnat → 일단 서비스 멈추고
net start winnat → 다시 시작
netsh interface ipv4 show excludedportrange protocol=tcp → 점유 포트 확인

⇒ 순서대로 잘 따라치면

 

 

 

⇒ 깨끗하다

 

 

 

 

원하는 포트 예외처리

netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1 store=persistent

⇒ MariaDB는 3306

 

 

 

다시 점유포트 확인

netsh interface ipv4 show excludedportrange protocol=tcp

굿

 

 

 

다시 docker에 mariaDB 설치 시도

docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb

 

 

 

 

 

4) Error response from daemon: Conflict. The container name "/mariadb" is already in use by container 해결방법(이미 설치되었다)

다시 docker에 mariaDB 설치 시도했을 때 나는 에러(안날수도 있음)

docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb

 

💡 도커 : 이미 깔려있어요…(에러)
docker: Error response from daemon: Conflict. The container name "/mariadb" is already in use by container "fbe6ee1ccb6d294a81189c40867ba0ca65db043ebbfc807b5b4969a13ffdbea6". You have to remove (or rename) that container to be able to reuse that name. See 'docker run --help'.
</aside>

⇒ ㅇㅇ 괜찮아 삭제할거야

 

 

 

 

docker ps -a → 정지된 컨테이너 확인(ID확인)
docker rm 컨테이너ID → 컨테이너 삭제
docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
→ mariaDB 설치

→ 이제 에러안난다

 

 

 

 

⇒ 허용하고 예!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

설치완료

 

 

 

 

 

 

 

 

 

 

 

 

5) bash: mysql: command not found 에러 해결

그저 하염없이 눈물이나…

이 에러는 mysql 명령어가 컨테이너 내에서 실행되지 않고 있음을 나타냅니다.
컨테이너 내에서 MySQL 클라이언트 도구가 설치되어 있지 않거나
PATH 환경 변수가 제대로 설정되지 않은 경우에 발생할 수 있습니다.

⇒ 응 해결할거야

 

 

1) mariaDB가 있는 컨테이너 접속

docker exec -it mariadb /bin/bash

⇒ 도커야 mariaDB 컨테이너 실행시켜줘

 

 

 

2) mariaDB 실행

mysql -u root -p

 

여기서 해당 에러가 뜬다

 

 

 

<해결방법>

1) 그냥 침착하게 apt-get update해서 MySQL클라이언트 설치

apt-get update

대충 이러고 다 깔리면

 

 

 

 

2) 그다음 침착하게 mariaDB클라이언트 설치

apt-get install mariadb-client

그러다가 디스크 용량 필요한데 계속할거냐 하면 Y누르기

 

 

 

열심히 깔리는거 구경하다가 다 깔리면 다시 

 

 

 

 

 

mariadb -u root -p

하고 엔터치면 Enter parrword: 뜨는데 여기다가 root치면 됨 화면에는 안보임
(예전에는 mysql -u root -p해도 먹혔는데 이제는 안됨)

 

짜잔 이러면 드디어 mariaDB접속됨

 

 

 

 

 

 

'개발 > 개발 - 기본 설정' 카테고리의 다른 글

도커(Docker) 설치하기  (0) 2024.03.18
Node.js 설치하기  (0) 2024.03.18
파이썬 - 0.설치  (0) 2023.08.01
[JavaScript]Tern  (1) 2020.09.17
[Eclipse] Ctrl+Alt+Down (Copy Lines)이 먹히지 않을 때  (0) 2020.09.17