강의 사이트 만들기

ubuntu 방화벽 설정 방법(ufw)과 MySQL 접속 및 주의사항

계란💕 2023. 10. 14. 21:49

원격 서버에 띄운 MySQL 서버에 접속하기 전 주의사항

  • mysql 구성 정보 파일에 bind-address: 127.0.0.1 부분을 주석 처리한다. 또는 0.0.0.0 으로 수정한다. 
  • mysql 서버에서 각 사용자에 대한 권한 설정
  • 방화벽 설정: 특정 IP 에 대해서 3306번 포트에 접근을 허용한다. 인바운드 규칙 설정
    • 가비아에 설정한대로 작동하지 않을 경우, ubuntu 서버에서 "sudo ufw " 명령어를 사용해서 직접 규칙을 설정할 수 있다. 

참고 ) https://oranthy.tistory.com/585?category=1050152


현재 우분투 서버의 방화벽 정보 확인 방법

 

  • 가비아 관리 콘솔에서 방화벽 규칙을 설정해도 적용되지 않는 것 같아서 알아보니 ubuntu 서버에서 직접 방화벽에 대해 설정하는 방법이 있다는 걸 알게 됐다. 
  • 그래서  방화벽 설정 정보를 조회하여 8080, 3306, 22  포트를 허용했다. 
  • 가비아 관리 콘솔에 설정한 내용이 왜 적용되지 않았는지는 정확히 모르겠다. 

 

  • sudo ufw status
    • 방화벽에 대한 상태 확인
    • 비활성 상태인 경우,  sudo ufw enable 를 입력해서 활성화시킬 수 있다. 

 

 

  • sudo ufw allow from IP주소 to any port 8080
    • 특정 IP 주소에 대해서 8080 포트로의 접속을 허용한다.

 

 

  • sudo ufw deny from IP주소 to any port 8080
    • 특정 IP 주소에 대해서 8080 포트로의 접속을 거부한다.

 

 

  • sudo ufw delete 3
    • 방화벽 설정 목록의 세 번째 행을 지운다.

 


ubuntu  mysql 데이터베이스 접속 오류

  • 오류: 로컬에서 실행하면 정상인데 원격에서는 에러가 난다. 
  • 원인
    • 1) 3306 포트에 대한 방화벽 문제
    • 2) yml 파일에 대한 실행 환경 구분하기
      • yml 파일에서 local 모드로 실행할 때는 데이터베이스 url에 원격 IP 를 넣으면 되지만, 원격에서 dev 모드로 실행할 때에는 url에 localhost를 넣으면 된다. (ubuntu 서버에 mysql을 띄운 것이므로)
  • 해결
    • 방화벽 설정
    • 가비아 관리 콘솔에 설정해둔것 보다 우분투 서버에서 명령어를 통해 직접 저장한 대로 방화벽이 작동했다.  (원인을 알 수 없음 ㅠㅠ, 우선 순위가 다른 걸로 보인다. )
    • 스프링 부트를 띄우다가 콘솔에 아래 코드가 나온 상태로 잠시 멈춰 있으면 DB 에러라고 볼 수 있다. 

com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure