코틀린으로 앱개발 공부를 하면서 외부 서버 연동을 준비중입니다.
보통 안드로이드에서는 구글 파이어베이스 연동을 다루는 예제가 많은데요.
속도가 느린 문제가 있다고 하고 No-SQL 이 아닌 SQL 류의 데이터베이스는 무엇보다 정석적인 기술로 접근하는게 좋기 때문입니다.
![](https://t1.daumcdn.net/keditor/emoticon/friends2/large/047.png)
무료로 사용 가능한 구름IDE 서비스에 MYSQL 서비스를 설치하면서 구름IDE의 특징적인 부분을 공유드립니다. ( 리눅스에 대한 기본지식, vi 에디터 정도는 사용 가능한 수준에서 설명드립니다. )
크레이도 나중에 이 글을 참고할 겸사, 기술검색으로 방문해주시는 분들께도 도움될 겸사 말이지요 :)
https://ide.goorm.io/
구름IDE - 설치가 필요없는 통합개발환경 서비스
경쟁력 있는 개발 조직의 선택
ide.goorm.io
구름IDE에서의 MYSQL 설치/접속 방법은 AWS나 구글클라우드와 일부 상이하나 개념적으로는 크게 다르지 않습니다. ( 단, 가상네트워크 VPC 나 부하 분배용 로드밸런서같은 기능은 없습니다. )
그럼 렛츠 고우~
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/001.gif)
MYSQL 설치 & 외부접속 계정 추가
구름IDE 컨테이너를 실행하신 다음에는,
화면 우측 하단의 아이콘을 클릭, 터미널을 실행할 수 있는데요.
웹 브라우저에서 바로 리눅스 명령어를 사용할 수 있습니다.
크레이가 사용하는 리눅스 시스템은 주로 CentOS 7 인데요.
서버로 사용하기에는 CentOS 가 성능적으로 우세하지만
아쉽게도 구름IDE는 우분투OS만 지원하기 때문에 설치방법이 상이하더군요.
약간의 구글링을 진행하면서 설치하였지요.
스피~드하게 핵심 명령어 위주로 설명드리겠습니다.
![](https://t1.daumcdn.net/keditor/emoticon/niniz/large/001.gif)
1) MYSQL 서버 설치
# apt-get install mysql-server
2) MYSQL 서버 서비스 시작
# service mysql start
3) root 패스워드 설정 ( 초기에는 비번이 없음 )
# mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '패스워드';
mysql> flush privileges;
4) 사용할 데이터베이스 생성 ( 데이터베이스명을 cray7db 로 정했으나 자유롭게 정해주셔도 됩니다 )
mysql> create database cray7db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
5) cray7db 에 접근할 MYSQL 계정 추가 ( root 계정은 해킹당하면 심각하므로 보통 이 방식으로 계정을 추가하는게 좋습니다. 여기서는 cray7로 정하였으나 자유롭게 정해주셔도 됩니다.)
mysql> create user cray7@localhost identified by '추가계정비번'; # 로컬 오픈
6) cray7db 데이터베이스를 사용할 권한을 줍니다.
mysql> grant all privileges on cray7db.* to 'cray7'@'localhost' identified by '추가계정비번';
7) 외부에서 접속이 들어올 경우에도 접근 권한을 부여합니다. ( 사무실 내에서만 접속을 제한하려면 아래 본문 중 '보안을 더욱 확실히 하려면'을 참조하세요 )
mysql> grant all privileges on cray7db.* to 'cray7'@'%' identified by '추가계정비번';
8) 지정한 권한을 반영합니다.
mysql> flush privileges;
mysql> quit
패스워드에 의한 외부 접속 오픈
※ 이 이하는 mysql을 SQLyog와 같은 프로그램으로 외부에서 접속할 경우 해당하며, 외부 오픈하지 않을 경우 설정하지 않아도 무방합니다.
9) 서버 안쪽에서 외부 접속 오픈
vi 에디터로 설정 파일을 연 다음,
# vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address 127.0.0.1 라고 된 곳을 찾아
아래와 같이 앞에 #을 붙여 주석처리하고 저장합니다.
#bind-address ...
10) 서버 바깥쪽에서 외부 접속 오픈
구름IDE 컨테이너 창에서 ... 버튼 - 설정으로 가기 메뉴를 선택합니다.
(1) 포트포워딩이란 부분을 찾아
(2) 추가 버튼을 클릭
(3) MYSQL 항목을 선택하고
(4) 체크 박스를 선택하면,
아래와 같이 MYSQL 통신 포트가 추가되는데요.
주의하실 부분이 있습니다. MYSQL 포트는 3306이지만 구름IDE는 이 포트번호는 사용할 수 없습니다.
대신 랜덤한 포트번호가 할당되며 아래 내역에서 확인하실 수 있습니다.
아래 이미지의 경우 56114번 포트를 사용해야 하는데요.
독자 여러분께서 직접 해보시면 다른 포트가 배정되니 해당 번호를 참조하시면 됩니다.
SQL 접속 프로그램에서 접속 방법
이제 mysql 접속 프로그램에서 Host Address와 사용자 이름, 비밀번호, 포트 4가지 항목을 정확히 입력하셔서 접속하시면 되는데요. 특히 포트번호가 3306이 아닌 앞에서 랜덤 배정된 번호를 사용해야 하는 점에 유의가 필요합니다.
접속할 경우 아래와 같이 권한이 배정된 데이터베이스만 접근할 수 있습니다.
cray7 계정에 cray7db 만 접근권한을 허용하였기 때문에,
다른 시스템 데이터베이스에는 접근할 수 없습니다.
이와 같이 하는 이유는 보안을 위한 것입니다.
root 라는 아이디는 최고 관리자 아이디이기 때문에 보통은 외부에서 접속이 불가능하게 하고
서비스에 필요한 계정만 오픈하여 안전한 운영을 하는 것이 좋습니다.
보안을 더욱 확실히 하려면
![](https://t1.daumcdn.net/keditor/emoticon/face/large/073.png)
MYSQL 툴로 접속할 때 사무실이나 집에서만 접근할 수 있도록 제한하는 방법이 확실합니다.
앞 단계에서 아래와 같은 명령어가 있었는데요. 이 명령어를 실행하는 대신,
mysql> grant all privileges on cray7db.* to 'cray7'@'%' identified by '추가계정비번';
사무실 또는 집의 IP 주소를 확인하신 다음
( 내 IP 주소는 https://www.myip.com/ 사이트에 접속하면 확인 가능 )
아래와 같이 권한을 부여하면 됩니다.
그러면 해당 IP 주소에 해당하는 사무실이나 집에서만 MYSQL 접속이 가능합니다.
mysql> grant all privileges on cray7db.* to 'cray7'@'IP주소' identified by '추가계정비번';
mysql> flush privileges;
마무~리
리눅스 중에서 구름IDE + 우분투OS에서 MYSQL 설치 방법을 다루어 보았습니다.
크레이도 나중에 참조하게 되겠지만 아무쪼록 필요하신 분께 도움이 되셨기를 바랍니다. :)
오늘도 방문해주신 모든 분들께 감사드립니다.
공감한방, 댓글응원은 크레이에게 큰 힘이 됩니다!
'코딩과 알고리즘' 카테고리의 다른 글
REST API와 포스트맨~! (0) | 2022.12.31 |
---|---|
구름IDE + Node.js + Rest API (6) | 2022.12.29 |
크레이의 앱 개발 도전기 #11. 카페매장 주문기 (코틀린 연습) (4) | 2022.12.18 |
크레이의 앱 개발 도전기 #10. 세컨드라이프 정보 뷰어(코틀린) (2) | 2022.12.16 |
ChatGPT 채팅 오픈AI (2) | 2022.12.12 |