Post

Maria DB 연동 오류 - 이미 사용중인 포트

오류2

1
docker Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

mariadb 실행하기 위해
docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
명령어를 입력했을 때 발생한 오류!

mariadb와 mysql 모두 mysql의 3306 포트를 사용하기 때문에 발생하는 오류이다. 같은 데이터베이스기때문에 둘 중 하나만 설치하는게 가장 좋지만, 나의 경우에는 강의가 mariadb로 진행되어 사용하지 않는 3307 포트와 연결해주었다.

누가 포트 사용중인지 확인하기

$netstat -ano | findstr 3306

1
2
3
4
5
C:\Users\user>netstat -ano | findstr 3306
TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 5952
TCP 0.0.0.0:33060 0.0.0.0:0 LISTENING 5952
TCP [::]:3306 [::]:0 LISTENING 5952
TCP [::]:33060 [::]:0 LISTENING 5952

5952 포트 사용하는게 누군지 확인하기

1
2
C:\Users\user>tasklist | findstr 5952
mysqld.exe 5952 Services 0 3,092 K

하지만 하단과 같은 오류가 다시 발생!!!

1
docker: Error response from daemon: Conflict. The container name "/mariadb" is already in use by container "44e9379dbfd8a35b26ea06347b3b6db3214fd5f64f8555f1e661aff22caca7a1". You have to remove (or rename) that container to be able to reuse that name.

원인

docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb 명령어 입력 시 오류가 발생했지만 ‘/mariadb’라는 컨테이너가 생성되었기 때문에 발생하는 오류이다.
기존 컨테이너를 삭제하고 다시 한번 명령어를 입력하면 잘 설치된다.

  • 기존 컨테이너 삭제: docker rm mariadb
  • 설치: docker run --name mariadb -d -p 3307:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
This post is licensed under CC BY 4.0 by the author.