인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

최선우님의 프로필 이미지
최선우

작성한 질문수

PHP 개발자의 최종 테크트리, 라라벨 강의

Only one usage of each socket address (protocol/network address/port) is normally permitted.

작성

·

2.6K

0

 Error response from daemon: 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.

 

안녕하세요, 선생님! 강의를 보면서 라라벨 설치 완료 후 라라벨을 시작하면서 이런 에러를 발견해서 보니까 포트에 문제가 있더라구요...

docker 화면에서도 확인했을 때, 포트에 문제가 있던 걸 재차 확인했습니다. 포트를 바인딩해야할 것 같은데 도커를 사용해본 적이 없는 개발자 준비생으로서는,, 구글링해서 해결하기에도 너무 어려운 것 같아요...ㅠㅠ 도와주세요

아 참고로 리소스모니터를 확인해보니 3306포트에 mysql파일이 실행 중인 것 같던데,

예전에 XAMPP 다운받았던 거랑 상관이 있는 건지... 원인파악을 못해서 3일 동안 헤매고있네요...ㅜㅜ

답변 2

1

백승철님의 프로필 이미지
백승철
지식공유자

에러에 출력된 대로 해당 문제는 이미 3306 포트를 사용하고 있기 때문에 발생하는 문제입니다. 도커로 라라벨 컨테이너를 다운받기 전에 작업하시는 컴퓨터에 mysql을 설치한 적이 있으신 것 같습니다.

 

가장 효과적인 방법은 컴퓨터에 설치 되어 있는 mysql을 전부 삭제하시는 것 이지만 혹시 다른 프로젝트 때문에 지울수는 없다고 한다면

  1. win + r 단축키로 실행 창을 띄워주신 뒤, services.msc 라고 입력해 주세요.

  2. 서비스 화면에서 스크롤을 아래로 내려 mysql 이름을 찾아 주세요.( 저는 대신 마리아디비를 사용하지만 방식은 동일합니다.)

  3. 우클릭 -> 속성에 들어가서 시작 유형을 수동으로 변경하신 뒤, 확인을 누르시고 컴퓨터를 재부팅 해주세요. 그러면 다음부터 mysql 서버는 사용자가 직접 시작하기 전에는 자동으로 안 켜지기 때문에 포트 겹침이 발생하지 않을 것으로 예상됩니다.

imageimage

최선우님의 프로필 이미지
최선우
질문자

감사합니다~~! 열심히 수강하도록 하겠습니다!

0

선생님 singleton으로 바꾸어도 누적이 안되고,

70으로 3개만 출력이 됩니다.

bind와 같은 결과값이 나오는데 어느부분을 체크해보아야 할까용 ㅠㅠ

백승철님의 프로필 이미지
백승철
지식공유자

음.. 지금 주신 답변만으로는 무엇이 문제인지를 파악하기가 어렵습니다.

그렇지만 말씀 주신 것으로 보니 서비스 프로바이더를 테스트해보려고 하는데 잘 안되시는 것 같습니다.

강의에서는 프로바이더를 따로 만들어서 싱글톤으로 등록하였는데 혹시 해당 프로바이더를 등록하지 않으셨는지 확인해보세요. 아니면 컨트롤러 위 use에 제대로 파일 경로를 지정해 주셨는지를 확인해 주셔야 합니다.

 

  1. app.php 에 ~provider.php 가 등록되었는지 체크

  2. bind (singleton) 안의 형식이 제대로 갖추어 졌는지를 확인

  3. 프로바이더 위, use 에 이름이 제대로 적혀있는지를 확인


바인드에서 싱글톤으로 넘어갈 때 제대로 등록이 되어서 상태가 저장되는지를 알려주는 오류는 현재 표시되지 않는 것으로 알고 있습니다. 그렇기 때문에 다시 재생해 보시면서 빠진 부분은 없는지 체크해 주시고 그럼에도 안된다고 한다면 더 자세하게 현 상황을 남겨주시면 감사하겠습니다.

최선우님의 프로필 이미지
최선우

작성한 질문수

질문하기