작성
·
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을 전부 삭제하시는 것 이지만 혹시 다른 프로젝트 때문에 지울수는 없다고 한다면
win + r 단축키로 실행 창을 띄워주신 뒤, services.msc 라고 입력해 주세요.
서비스 화면에서 스크롤을 아래로 내려 mysql 이름을 찾아 주세요.( 저는 대신 마리아디비를 사용하지만 방식은 동일합니다.)
우클릭 -> 속성에 들어가서 시작 유형을 수동으로 변경하신 뒤, 확인을 누르시고 컴퓨터를 재부팅 해주세요. 그러면 다음부터 mysql 서버는 사용자가 직접 시작하기 전에는 자동으로 안 켜지기 때문에 포트 겹침이 발생하지 않을 것으로 예상됩니다.
0
음.. 지금 주신 답변만으로는 무엇이 문제인지를 파악하기가 어렵습니다.
그렇지만 말씀 주신 것으로 보니 서비스 프로바이더를 테스트해보려고 하는데 잘 안되시는 것 같습니다.
강의에서는 프로바이더를 따로 만들어서 싱글톤으로 등록하였는데 혹시 해당 프로바이더를 등록하지 않으셨는지 확인해보세요. 아니면 컨트롤러 위 use에 제대로 파일 경로를 지정해 주셨는지를 확인해 주셔야 합니다.
app.php 에 ~provider.php 가 등록되었는지 체크
bind (singleton) 안의 형식이 제대로 갖추어 졌는지를 확인
프로바이더 위, use 에 이름이 제대로 적혀있는지를 확인
바인드에서 싱글톤으로 넘어갈 때 제대로 등록이 되어서 상태가 저장되는지를 알려주는 오류는 현재 표시되지 않는 것으로 알고 있습니다. 그렇기 때문에 다시 재생해 보시면서 빠진 부분은 없는지 체크해 주시고 그럼에도 안된다고 한다면 더 자세하게 현 상황을 남겨주시면 감사하겠습니다.
감사합니다~~! 열심히 수강하도록 하겠습니다!