평소 문제없이 작업중이던 docker의 mysql이 뜬금없이 아래와 같은 문제를 발생시켰다.
```
ERROR: for mysql Cannot start service mysql: Ports are not available: listen tcp 0.0.0.0:3306: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
```
아래와 같은 과정(3306 포트를 점유하고 있는 프로세스 kill)으로 해결하려 했으나, mysql을 local에 설치한적 조차 없는 PC였기에 아무런 result를 반납하지 않았다.
```
netstat -ano | findstr 3306
```
그래서 windows에서 자체적으로 port를 관리하고 있는가?로 생각했는데 정확히 들어맞았다.
netsh interface ipv4 show excludedportrange protocol=tcp
위 명령어를 입력하게 되면, 제외된 범위의 port를 발견할 수 있고, 3306이 이에 포함되어있다.
자, 이제 어떻게 해결할것인가?만 남았는데,
2가지 선택지가 있다.
1. 범위 제외
```
net stop winnat
net start winnat
```
2. docker(mysql) port mapping 변경
(1번 방법은 윈도우가 범위를 제외시킨데 나름대로 이유가 있을것이라 생각해서, 필자는 2번 방법을 채택하였다.)
(다른분들은 저처럼 황당한 에러때문에 고통 받지 않으시길 바라는 마음에 글을 남깁니다)
'-' 카테고리의 다른 글
첫 회고 (2) | 2023.05.28 |
---|---|
(번외) 메모리 관리 (0) | 2021.11.14 |