dinist

Compute Engine VM에 설치된 MariaDB에 원격접속하기 본문

Google Cloud Platform/Compute Engine

Compute Engine VM에 설치된 MariaDB에 원격접속하기

dinist 2020. 7. 27. 13:44

각종 센서를 통해 수집한 값을 아두이노를 통해 Compute Engine VM에 설치된 MariaDB에 저장하려고 계획하고 있다.

물론 SSH 등을 통해 콘솔에서도 DB 작업을 할 수 있으나 GUI 환경에서 DataBase를 관리하는 것도 편할 것이므로

윈도우의 Toad Edge를 활용한 DB 외부 접속을 설정해보자.

 

외부에서 접속할 때는 root계정으로 접속하는 것은 매우 위험하므로 root와 비슷하지만 root보다는 약한 수준의 별도 계정을 우선 생성하는 것이 좋다.

 

sudo mysql -u root

VM의 SSH에서 root계정으로 mariadb에 접속한다.

 

혹시 이러한 에러가 발생한다면..

mysql 서비스가 실행중이지 않을 가능성이 크므로 다음 명령으로 서비스를 실행해준다.

sudo service mysql start

그 이후 다시 mysql콘솔을 실행하면 잘 될것이다. 이제 다음 명령을 입력하여 사용자를 추가한다.

%로 설정한 이유는 외부 ip접속을 허용하기 위해서이다. localhost로 설정시 localhost에서만 해당 계정으로 접속이 가능해진다.

create user '유저명'@'%' identified by '비밀번호';

데이터베이스를 하나 만들어서 방금 만든 계정을 이 데이터베이스에만 접근 할 수 있도록 해보자.

 

create database "DB명";

위 명령으로 데이터베이스를 생성해준다.

 

이제 생성한 유저에게 모든 데이터베이스에 대해 모든 권한을 줘보자. (권한 설정은 그에 대한 책임이 따르므로 주의)

grant all privileges on *.* to '유저명'@'%'; 

예를 Employee라는 DataBase에 대해서만 모든 권한을 주기 원한다면 Employee.* 로 바꿔주면된다.

지금 위의 명령에서는 모든 DataBase에 대해 모든 권한을 주는 것이다.

all 대신에 특정 권한만 주려면 특정 권한으로 바꿔준다. SELECT, UPDATE, DELETE , INSERT 등..

 

모두 완료되면 GCP의 Compute Engine의 방화벽 설정을 해줘야한다.

 

다음과 같이 3306/tcp에 대하여 허용하는 규칙을 만들어 적용한다.

 

이후에 윈도우에서 VM의 데이터베이스에 접근해보자

 

Heidi SQL, Toad Edge등 여러 프로그램이 있고 Heidi SQL을 많이 사용한다. 나는 Toad Edge를 사용하여 접속해보도록 한다.

 

Toad Edge는 원래 무료가 아니지만 제한된 기능으로 무료 사용을 할 수 있다.

Toad Edge 설치와 계정생성은 생략한다. Toad Edge를 설치 후 실행하여 새 연결을 생성한다.

 

 

그러면 이러한 창이 나오는데 MySQL을 선택하고 Hostname에는 VM의 주소, Username에는 앞서 생성한 계정명, Password는 계정의 비밀번호를 입력해주면 된다. Port는 별도의 변경을 하지 않았다면 기본적으로 3306 Port를 사용한다.

 

이제 Connect를 눌러서 연결하면..!

 

굿! 아까 만든 데이터베이스도 나오고 접속이 잘 된다.

 

이제 기타 환경에서도 직접 VM의 데이터베이스에 접근할 수 있다.