일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 3000 port kill
- 려려
- 티스토리챌린지
- conda base 활성화
- conda base 기본 설정
- 오블완
- 실행중인 포트 죽이기
- conda 기초 설정
- time wait port kill
- conda 가상환경 설정 오류
- window netstat time wait 제거
Archives
- Today
- Total
모도리는 공부중
[DB-MySQL] MySQL Docker 마운트, 개발(WSL)과 운영 환경(Rock-5c) 고려한 데이터 경로 설정 (feat. ChatGPT) 본문
내 지식 정리/날것 그 자체
[DB-MySQL] MySQL Docker 마운트, 개발(WSL)과 운영 환경(Rock-5c) 고려한 데이터 경로 설정 (feat. ChatGPT)
공부하는 모도리 2025. 3. 16. 16:29728x90
반응형
MySQL 데이터를 마운트할 때, 로컬 개발 환경(Windows + WSL) 과 운영 환경(Rock-5C, Linux 기반) 에서 자주 사용하는 경로는 다를 수 있습니다.
각 환경에 맞춰 최적의 데이터 마운트 경로를 정리해드릴게요.
✅ 개발 환경 (Windows + WSL)
Windows에서 Docker를 사용할 때 볼륨 마운트 경로는 WSL과의 호환성을 고려해야 합니다.
1️⃣ WSL 내부 디렉토리 사용 (추천)
가장 일반적으로 사용되는 경로:
-v ~/mysql-data:/var/lib/mysql
- ~ (/home/사용자) 아래에 mysql-data 디렉토리를 만들어 사용.
- WSL 내에서 관리되므로 WSL과의 I/O 속도 문제 없음.
디렉토리 생성 방법
mkdir -p ~/mysql-data
chmod 777 ~/mysql-data # 권한 설정 (WSL 내에서만 사용하면 필요 없음)
📌 장점
- Windows와 독립적이므로 WSL에서 속도 저하 없음.
- WSL을 활용한 개발 환경과 일관성 유지.
📌 단점
- Windows에서 직접 접근하기 어려움 (\\wsl$\Ubuntu-22.04\home\사용자\mysql-data 경로 사용해야 함).
2️⃣ Windows 디렉토리 사용
Windows의 특정 폴더를 마운트하려면 WSL과 Windows 경로를 맞춰야 함.
-v /mnt/c/Users/사용자/mysql-data:/var/lib/mysql
또는
-v C:\Users\사용자\mysql-data:/var/lib/mysql
📌 장점
- Windows 파일 탐색기로 데이터 확인 가능.
- 백업 및 공유가 용이함.
📌 단점
- WSL → Windows 파일 시스템 접근 속도가 느림 (I/O 성능 저하 가능).
- Windows 경로에서 파일 시스템 차이로 인해 일부 퍼미션 문제 발생 가능.
🔹 결론 → WSL에서 개발한다면 ~/mysql-data 사용 권장!
✅ 운영 환경 (Rock-5C, Linux)
Rock-5C는 Linux 기반이므로, MySQL 데이터를 마운트할 경로를 신중하게 선택해야 합니다.
1️⃣ 표준 Linux 데이터 경로 사용 (운영 환경 추천)
-v /var/lib/mysql:/var/lib/mysql
🔹 이유:
- MySQL은 기본적으로 /var/lib/mysql을 데이터 디렉토리로 사용.
- 운영 환경에서 일반적으로 사용하는 표준 경로.
- MySQL이 내부적으로 사용하는 설정과 충돌 없이 동작.
📌 장점
- MySQL 기본 경로이므로 설정 수정 없이 사용 가능.
- 운영 환경에서 유지보수하기 용이.
📌 단점
- /var/lib/mysql이 OS와 같은 디스크를 사용하므로, 필요에 따라 다른 디스크로 옮겨야 할 수도 있음.
2️⃣ 별도 데이터 디렉토리 설정 (운영 환경에서 데이터 보호)
만약 운영 환경에서 MySQL 데이터를 별도의 디스크나 파티션에 저장하고 싶다면:
-v /mnt/data/mysql:/var/lib/mysql
또는
-v /opt/mysql-data:/var/lib/mysql
📌 장점
- /mnt/data 같은 디렉토리를 사용하면 별도의 스토리지 디스크를 마운트하여 데이터 보호 가능.
- 운영 중 MySQL 데이터 백업 및 관리가 편리.
📌 단점
- 기본 설정을 변경해야 하므로, my.cnf에서 datadir=/mnt/data/mysql 설정 필요.
🔹 결론 → 운영 환경에서는 /var/lib/mysql 기본값을 사용하거나, 필요하면 /mnt/data/mysql 같은 별도 디렉토리를 활용!
🔹 최종 정리
환경 추천 마운트 경로 이유
Windows (WSL) | -v ~/mysql-data:/var/lib/mysql | WSL 내에서 성능 최적화 |
Windows (직접 접근 필요) | -v /mnt/c/Users/사용자/mysql-data:/var/lib/mysql | Windows 탐색기로 직접 접근 가능 |
Rock-5C (운영 환경) | -v /var/lib/mysql:/var/lib/mysql | 표준 MySQL 경로, 유지보수 용이 |
Rock-5C (별도 스토리지 사용) | -v /mnt/data/mysql:/var/lib/mysql | 별도 디스크 활용 가능 |
🔹 추가 팁
- 디렉토리 생성 및 권한 설정
Rock-5C에서 MySQL 실행 전에 디렉토리를 미리 만들어 주는 것이 좋습니다. - sudo mkdir -p /var/lib/mysql sudo chown -R 999:999 /var/lib/mysql # MySQL 컨테이너 UID 확인 필요
- 컨테이너가 잘못된 권한으로 실행될 경우 해결 방법
- --user $(id -u):$(id -g)를 추가하여 호스트와 동일한 권한으로 실행.
- docker run -d \ --name mysql-container \ -e MYSQL_ROOT_PASSWORD=my-secret-pw \ -e MYSQL_DATABASE=mydb \ -e MYSQL_USER=myuser \ -e MYSQL_PASSWORD=mypassword \ -p 3306:3306 \ -v /var/lib/mysql:/var/lib/mysql \ --user $(id -u):$(id -g) \ mysql:latest
🔹 결론
- Windows(WSL)에서는 ~/mysql-data를 추천 (WSL 파일 접근 성능 최적화).
- 운영 환경(Rock-5C)에서는 /var/lib/mysql 기본값 유지 (운영 표준 경로).
- 데이터를 외부 저장소에 따로 두고 싶다면 /mnt/data/mysql을 활용.
이제 WSL에서 개발하고, Rock-5C에 이관할 때 마운트 경로만 맞춰주면 문제없이 운영 가능할 거예요. 🚀
728x90
반응형
'내 지식 정리 > 날것 그 자체' 카테고리의 다른 글
[DB-MySQL] Windows & Linux(ARM64) 환경에서 Docker로 MySQL 설치 및 실행하기 (feat.ChatGPT) (0) | 2025.03.16 |
---|---|
달력 라이브러리 비교 테스트 결과 (0) | 2025.03.13 |
2025.03. 개발 궁금증 링크 일기 (0) | 2025.03.10 |
[WSL-Docker] WSL Ubuntu에서 Windows Docker desktop 같이 볼 수 있게 설정법 (0) | 2025.02.28 |
[IDE툴 SSH 접속] 클라우드 ip가 변경된 후 vscode에서 원격 ide 접속이 안된다 (0) | 2025.02.17 |
Comments