프로젝트/설정 등

[MariaDB] 외부에서 로컬 DB 접속하기

민뇌 2023. 7. 11. 13:11

목적

  • 팀 프로젝트를 위한 공용DB 필요
  • 두 대 이상의 PC에서 작업하여 각 PC별 로컬DB 설치가 번거로움
  • PC에 DB를 생성해두고 외부에서 노트북으로 PC내 DB에 접근하고 싶음

등의 이유로 특정 PC에 생성해둔  DB로 외부에서 접근하고 싶을 때 다음과 같은 절차를 이용하면 도움이 될 수 있다.

 

당연하게도 로컬이 되는 PC(DB가 있는 PC)가 켜져있을 때만 DB관련 작업이 가능하다.

 

※ 기타 보안 문제는 잘 모름 + 필수적이지 않은 설정도 있을 수 있음.

 

[포트포워딩 및 방화벽]

이전 Oracle DB 외부 접속과 마찬가지로 포트포워딩과 방화벽 설정은 해줘야 정상 작동할 것으로 생각된다.

 

당연하게 생각하고 먼저 위 설정을 한 후 테스트를 해봐서 필수 요소인지는 알 수 없으니, 궁금한 사람이 있다면 설정없이 테스트 해보시길..

 

포트포워딩과 방화벽 설정은 이전 글에 나와있는대로 하면 된다.

 

다른점은 이전엔 Oracle을 사용해서 포트 번호가 1521이었지만, 이번엔 MariaDB이므로 3306으로 해주면된다.

 

포트포워딩 및 방화벽 설정

 

[Oracle] 외부에서 로컬DB 접속하기

목적 팀 프로젝트를 위한 공용DB 필요 두 대 이상의 PC에서 작업하여 각 PC별 로컬DB 설치가 번거로움 PC에 DB를 생성해두고 외부에서 노트북으로 PC내 DB에 접근하고 싶음 등의 이유로 특정 PC에 생

developlsb2dwb.tistory.com

 

[권한설정]

 

내 로컬 MariaDB에 특정 외부인이 접근 가능하게 하도록 하려면 위 설정 외에 추가로 권한부여 설정을 해줘야한다.

 

아마 위 과정을 모두 따라해서 외부 접속을 하려했으나 authentication 오류가 난다면 권한설정을 안해줘서 그럴 가능성이 높다.

 

권한부여 관련 설명은 아래 포스트를 참고했다.

 

참고 : https://ilimes.github.io/mariadb/post28/

 

같은 프로젝트를 진행하는 특정 사람에게 test라는 DB에 대한 접근 권한을 주고 싶다면 아래와 같이 쓰면된다.

 

로컬이 되는PC에서 우선 MySQL Client를 실행하자.

 

사용할 DB에 접속한다(이렇게 안되면 그냥 (none)인 상태에서 GRANT~ 를 입력해보자..).

MariaDB[(none)]> USE test
Database changed

다음으로 아래와 같이 특정 접속자의 IP주소(외부IP)를 입력하고 비밀번호를 적어주면 된다.

MariaDB[test]> GRANT ALL PRIVILEGES ON test.* TO 'root'@123.456.789.012' IDENTIFIED BY '비밀번호';

'root'는 기본 아이디가 root로 되어있어서 고정해 둔 것인데 MariaDB를 안써봐서 바꿀 수 있는건지 모르겠다(아마 바꿀 수 있거나 새로 생성해서 root가 아닌 경우도 있을 것 같음).

 

이렇게 로컬DB가 위치한 PC에서 해당 DB의 권한을 열어주면 외부에서 접속이 가능해진다.

 

[외부 접속자]

이제 외부 접속자를 보자.

 

DBeaver를 사용해서 새로 MariaDB와 연동하면 된다(DBeaver 연동은 여기).

 

DBeaver 실행화면

 

위 빨간 네모를 클릭하고, MariaDB를 선택해준다.

 

DBeaver 실행화면

 

그럼 아래와 같은 창이 나온다.

 

DBeaver 실행화면

 

여기서 localhost라고 되어 있는 부분에, 로컬이 되는 PC의 외부IP 주소를 적으면 된다.

 

예를 들어, 팀프로젝트에서 팀장이 DB를 만들어 놓고 팀원이 팀장PC의 DB에 접속하고자 한다면,

 

팀장PC의 외부IP 주소(네이버에 '내 ip' 검색)를 알려달라고 해서 Server Host에 적으면 된다.

 

Database에는 해당 DB의 이름을 적는다.

 

비밀번호는 사실 테스트를 못해봐서 잘 모르겠는데,

 

로컬PC에서(즉, 팀장이) 권한 부여 시 입력한 비밀번호를 적는 것이거나, 외부PC(즉, 팀원)에서 MariaDB 설치 시 입력한 비밀번호를 적는 것이거나 둘 중 하나일 것이다.

 

아니면 애초에 권한 부여를 할 때, 그 비밀번호와 연결해 줄 팀원의 MariaDB 설치 비밀번호가 일치해야되는 것일 수도 있다.

 

처음이라 잘 몰라서 그냥 일치하게 만들었기에.. 테스트를 못해봤다.

 

이렇게 하고 Test Connection 해보면 정상 연결 된다고 뜰 것이다.

 

Finsh를 하고 새로 테이블을 생성하거나 DB 변경사항을 만든 뒤, 로컬이 되는 PC에서 확인해보면 변경점이 반영되어 있다.

 

 

일단 프로젝트랑 연결 전에 DB만 반영해봤는데, mybatis 활용해서 연동했을 때 잘 작동할지 아직 모르겠다.

 

이후 프로젝트를 진행하며 위 설치 과정, 또는 연동 과정에 오류가 있으면 수정하도록 하겠다.