te___ho
NO RULES
te___ho
전체 방문자
오늘
어제
  • 분류 전체보기 (88)
    • My project (27)
      • High Traffic Lab (3)
      • Nanaland in Jeju (8)
      • Univey (3)
      • inflearn_clone? (13)
    • Spring (19)
    • Network & CS (9)
    • Java (1)
    • Front_End (8)
    • Algorithm (11)
    • ETC (6)
    • Scribble (7)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
te___ho

NO RULES

맥에서 MySql, MaraiDB 두개 다 사용하기 (Feat. Docker 이래서 쓰는구나, 맥 mariaDB 설치하기)
My project/Nanaland in Jeju

맥에서 MySql, MaraiDB 두개 다 사용하기 (Feat. Docker 이래서 쓰는구나, 맥 mariaDB 설치하기)

2024. 3. 27. 19:21

 문제의 시작은 이번 프로젝트에서 mariadb를 사용해 보기로 하면서 발생했다. 채용 공고들을 보면 RDBMS 중에는 MySql과 MariaDB가 많은 것 같아 사용해보지 않았던 MariaDB를 데이터 베이스로 선택했다. (maraidb는 mysql에서 파생되어 나온 데이터베이스여서 거의 동일하다고 한다 :])

어제의 지옥편

 맥은 homebrew를 통해 많은 프로그램들을 다운받기에 역시 brew install mariadb를 시원하게 입력했다.

재앙의 시작,,

 찾아보니 둘은 거의 모든 곳에서 같은 구조를 이루고 있어 같은 로컬에 동시 설치하면 많은 오류가 발생할 수 있다고 했다. 

 이것을 알고 빠르게 다른 방법을 생각      했어야했는데.. "port를 다르게 설정하면 되지 않을까?"라는 천진난만한 생각으로 이것저것 만지다가... 결론적으로는 mysql조차 실행도 안되고 눈물을 머금고 재설치를 시도했지만 이 역시도 안되고 설정을 잘못 건드렸는지 homebrew까지 말을 안 듣는 상황이 발생했다. 

 

 어제의 눈물나는 약 6시간의 삽질을 주절주절하고 싶지만 요약하면,,,
 => mysql 삭제 -> 3년 동안 공부하면서 사용한 데베 다 날아감(백업해둘 생각 왜 안 했지..), homebrew 재설치, mysql 공홈에서 재설치

 (날라갔어도 mysql은 재설치가 안되면 앞으로 이 맥북에서 개발 못하나? 졸업 작품은 mysql로 하고 있는데..?라는 심신 미약으로 이동 중인 전철에서 부랴부랴 고치고 다른 동아리와 미팅 있어서 만신창이로 가는데 지하철역에서 발목 돌아가고 :[ )

쿼리 파일은 로컬에 저장되어있지만 없어.. 테이블은.. 없어 그런거..

오늘의 희망편 🐳

 mysql은 복구시켜놓고 프로젝트 스택을 mariaDB로 했는데 어쩜 좋지..라는 생각이 오늘 계속 들었다. 로컬에서 h2나 mysql을 사용하면 되겠지만 그래도 사용해보고 싶었다.. 이때 스쳐가는 🐳도커🐳..! 

 

 도커를 직접 사용해본적이 없었고 우연찮게 지난주에 도커가 진짜 필요해서 쓰는 경우를 체험해보고 싶었다. 이론적으로는 많이 듣고 찾아봐서 이해했지만 사실 개발을 하면서 도커 필요하다. 를 느낀 적이 없었다.

 

도커 왜 쓰는데

 도커는 컨테이너에서 실행되니까 다른 시스템에 영향을 주지 않는다 -> 지금 내 상황에 딱 이 부분이 필요했다. 

 mysql은 로컬, mariaDB는 포트 바꾸고 컨테이너에서 실행시면 서로 간섭되지 않으니 가능하겠다는 생각으로 당장 실행에 옮겼다.
(도커 설치, 이미지 다운로드에 대한 자세한 내용은 생략)

docker pull mariadb
docker run -p 3308:3306 --name mariadbContainer -e MARIADB_ROOT_PASSWORD='root' -d mariadb

 도커 이미지를 가져온 후 포트를 mysql과 다르게 설정한 후 실행시킨다. (로컬에서는 Mysql에 3306포트를 할당했다.) 

 3308:3306 부분은 내 로컬에서 3308포트로 입력받고 컨테이너의 3306 포트로 연결시킨다는 뜻이다.

docker exec -it mariadbContainer /bin/bash 
mariadb -uroot -p

 이후 docker exec -it mariadbContainer /bin/bash 를 통해 컨테이너에 접속한 다음부터는 mariadb -uroot -p를 입력해 mysql와 똑같이 사용하면 된다. 

연결 성공..
너 대단한 친구였구나

마무리

 3년동안 mac을 사용하고 있지만 여전히 무섭다ㅋㅋㅋ 이번 사건이 역대급 절망 편이었던 것 같지만 우당탕탕 또 해결했다.

 나는 도커를 사용해서 mysql과 mariadb를 모두 사용할 수 있게 되었지만 다른 더 좋은 방법은 언제나 그랬듯이 또 어디 숨어있겠지라는 생각이 든다.🥲 

 

 그래도 필요성을 느끼고 도커를 사용해보게 되어서 나름 값진(그렇지만 다시는 겪고 싶지않은) 경험이었다..

728x90
반응형
저작자표시 (새창열림)

'My project > Nanaland in Jeju' 카테고리의 다른 글

프로젝트 진행 시 엑셀에 작성한 데이터, DB에 저장하는 방법  (0) 2024.10.17
스프링 검색어 자동완성 비동기 처리 (Feat. 1만번의 부하테스트 결론은 Over Engineering 이었다고 한다..)  (5) 2024.08.29
검색어 자동완성 구현하기 with Redis (Feat. Elasticsearch)  (3) 2024.08.01
Stream API 사용 중 .toList()에서 UnsupportedOperationException 발생한 썰  (1) 2024.07.26
QueryDsl 부모에 자식 리스트 넣기 -> Transform (부제 : 쿼리의 수와 속도는 무조건 정비례가 아니다..)  (0) 2024.06.27

    티스토리툴바