✅ [문제 해결 기록] Homebrew MySQL 삭제 후에도 3306 포트가 점유되는 현상
📌 문제 요약
- Homebrew로 설치한 MySQL을 brew uninstall mysql로 삭제했음
- 그런데 lsof -i :3306 또는 docker-compose up 시
Port 3306 already in use 오류 발생 - 포트를 사용 중인 프로세스는 mysqld (_mysql 사용자)가 계속 떠 있었음
⚠️ error
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 127.0.0.1:0: listen tcp 0.0.0.0:3306: bind: address already in use
🔍 원인 분석
원인 항목 | 설명 |
🔁 mysqld 자동 재시작 | macOS는 MySQL을 launchctl 또는 plist 기반으로 등록하여 자동 재시작함 |
❌ brew uninstall 후에도 설정 파일 남음 | Homebrew는 실행 중인 서비스 또는 수동 설치된 launchd 항목까지 제거하지 않음 |
🧩 .pkg로 설치된 MySQL이 숨어있을 수 있음 | Homebrew 외에 예전에 .pkg로 설치한 MySQL이 /usr/local/mysql에 남아있을 수 있음 |
🛠 해결 방법 (③번으로 해결함)
✅ ① brew services로 완전 중단 시도
brew services list
brew services stop mysql
이후에도 계속 mysqld가 떠 있다면 → 다음 단계로.
✅ ② launchctl 기반으로 자동 실행 중단
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
또는 확인 후:
launchctl list | grep mysql
→ launchctl bootout 또는 launchctl remove 로 제거
✅ ③ 최종 수단: mysqld 강제 종료
sudo pkill mysqld
→ 포트 확인:
sudo lsof -i :3306
🟢 아무것도 안 나오면 성공
👉 이후 docker-compose up -d 하면 3306 포트를 도커가 점유 가능
✅ 요약
문제 | 해결방법 |
Homebrew MySQL 삭제 후에도 3306 점유 | mysqld가 자동 실행 중 |
포트 계속 살아 있음 | launchctl, plist, pkill 통해 중단 |
결국 해결한 방법 | ✅ sudo pkill mysqld 로 완전 종료 후 도커 사용 성공 |
'Setting' 카테고리의 다른 글
[WSL2] Windows에서 리눅스를 사용하는 방법: WSL & WSL2 정리 (1) | 2025.05.08 |
---|---|
[Docker] Docker에서 MySQL 버전 변경 및 dump 파일 교체 방법 (1) | 2025.05.04 |
[Docker/MySQL] Docker로 MySQL 개발 환경 구축하기 (0) | 2025.05.04 |
[Eclipse] Eclipse 폴더별 프로젝트 분류하기 (Working Set 방식) (0) | 2025.04.29 |
[MySQL] Homebrew를 통한 MySQL 설치 (업데이트 버전) (0) | 2025.04.27 |
댓글