반응형

 

 

 

아두이노(Arduino)를 활용하여 홈 IoT (사물인터넷) 프로젝트를 진행하다 보면 서버(Server) 구성의 필요성과 중요성을 느낄 때가 많습니다. 이전 포스팅까지는 아파치(Apache), PHP, MySQL DB(데이터베이스)를 이용하여 간단하게 서버를 구성하는 방법을 알아보았습니다. 또한 APMSetup 같은 프로그램을 이용하여 더 간편하게 가벼운 서버를 구성하기도 하였습니다. 

 

그러나 아두이노를 사용해서 점점 더 복잡한 홈IoT 및 스마트팜 (Smart Farm) 시스템을 구성하고 프로젝트를 기획하다 보면은 서버의 비중이 커지는 것을 느끼고 서버를 잘 구성해야겠다는 생각이 듭니다 (제 이야기입니다..;;). 그래서 개인 컴퓨터가 아닌 Cloud 플랫폼에서 리눅스를 기반으로 서버를 구성하는 방법을 공부해 보도록 하겠습니다. 

 

APMSetup을 이용하여 아파치, PHP, MySQL을 사용한 서버 구성을 알아보실 분은 아래 링크 참조 부탁드립니다.

 

Arduino 아두이노 홈 IoT(사물인터넷)을 위한 서버(Sever) 쉽게 만들기: APMSetup 프로그램

아두이노(Arduino)를 사용해서 홈 IoT(사물인터넷)을 구축하는 프로젝트를 위해서는 인터넷을 통한 데이터 전송이 기본적으로 가능해야 합니다. 인터넷을 사용하여 웹을 통해 데이터를 송수신하

it-g-house.tistory.com


1. 우분투(Ubuntu)

 

먼저 리눅스(Linux)가 운영체제(OS, Operating System)라는건 많이 들어보셨을 겁니다. 그중에 우분투(Ubuntu)는 "영국 기업 캐노니컬이 개발, 배포하는 컴퓨터 운영 체제이다. 데비안(Debian) 리눅스를 기반으로 개발되며, 데비안에 비해 사용 편의성에 초점을 맞춘 리눅스 배포판이다."라고 위키백과에서 설명하고 있습니다. 

 

간단하게 사용 편의성에 초점을 맞춘 데비안 리눅스를 기반으로 한 운영체제다 정도로 이해할 수 있습니다. 일반적으로 새 버젼이 6개월마다 공개되는데, 장기지원판이라고 LTS: Long Term Support은 2년에 한 번씩 출시되어 장기간 지원을 하고 있습니다.

 

우분투 LTS는 현재 20.04가 최신 버젼이고 2020년 4월에 업데이트되어 20.04라고 합니다. 저는 우분투 16.04 LTS를 사용하고 예시도 16.04를 기본으로 보여드리겠습니다.

 

아래는 우분투 16.04 운영체제 기본 터미널 화면입니다.

 

 

운영체제마다 명령어가 조금씩 다른데 이부분은 사용하다 보면 자주 사용하는 명령어가 보통 중복되기 때문에 금방 익숙해질 수 있습니다. (저는 아직 헤매는 중인데요 ㅠㅠ)

 

먼저 리눅스 배포판 LSB (Linux Standard Base) 버젼을 확인하기 위해 :~$ lsb_release -a 명령어를 실행합니다. 그럼 아래와 같이 사용하고 있는 운영체제의 정보를 알 수 있습니다. 저는 앞에서 언급했듯이 우분투 16.04 LTS를 사용하고 있습니다.

 


 

2. MySQL 설치

 

리눅스(우분투)에서 mysql을 설치하기 위해 

:~$ sudo apt-get install mysqp-server

명령어를 실행합니다.

 

그럼 아래와 같이 install이 실행되고, 중간에 mysql-server-core-5.7이라고 볼 수 있습니다. mysql 버전이 5.7인 것을 알 수 있습니다. 그리고 continue? 물음에 yes를 하면 본격적인 설치 진행이 됩니다. 대략 3~5분? 정도 진행하는 것 같습니다. 

 

설치가 완료되면 아래와 같이 "root" user의 비밀번호를 입력하라고 합니다. 사용할 비밀번호를 설정하는 부분이니 적절한 비밀번호를 입력해 주면 됩니다. 비밀번호를 입력하면 한 번 더 확인하고 설치가 마무리됩니다.

 

설치가 완료되면 이전 포스팅에서 터미널로 mysql을 실행하는 방법과 같은 명령어로 

:~$ mysql -u root -p

실행할 수 있습니다. mysql을 실행하면 앞서 설정했던 비밀번호를 입력하라는 메세지가 나오고 비밀번호를 입력하면 아래 화면과 같이 실행화면 mysql> 옆에 커서가 깜박이고 있는 것을 확인할 수 있습니다. 

 

이전 포스팅에서 window10의 명령 프롬프트에서 mysql을 실행하는 방법과 실행 후 화면이 같은 것을 확인할 수 있습니다. 그럼 데이터베이스(DB, Database)를 생성해 보겠습니다. 

 


 

3. 데이터베이스(Database) 생성하기

 

우선 현재 DB를 확인하기 위해 명령어 'show databases;'를 입력하면 

 

기존 생성되어 있는 Database들을 볼 수 있고, 기존 DB들은 어디에 사용되고 있는지 잘 모르니.. 그냥 건드리지 말고~ Test용 데이터베이스를 하나 만들어 보겠습니다.

 

Database 생성 명령어

> create database "DB이름";

을 아래와 같이 실행하면 됩니다. 여기서 "DB이름"을 저는 test로 명명하였습니다.

 

명령어를 실행하고 성공적으로 실행되었으면 Query OK란 메시지를 볼 수 있습니다.

 

그럼 실제로 'test' 데이터베이스가 생성되었는지 다시 show databases; 를 입력하면 아래와 같이 'test'가 새로 생성된 것을 확인할 수 있습니다.

 

 


 

4. Table 만들기

 

이어서 Table도 생성할 수 있습니다. 명령어는

>create table "table이름"

인데 여기에 데이터의 형태, 컬럼 제목, primary key 등을 사용자의 용도에 맞게 설정하는 항목이 추가로 들어가기 때문에 자세한 내용은 아래 링크 참조 부탁드립니다.

 

MySQL 시작하기: 데이터베이스(Database), 테이블(Table) 만들기

지난 포스팅에서 아두이노(Arduino) 프로젝트를 위한 서버(Sever) 구성 도구로 A.M.P (Apache, MySQL, PHP) 프로그램에 대해 알아보았습니다. 각 프로그램 역할과 설치방법에 대해 자세한 내용은 아래 링크

it-g-house.tistory.com

 


 

참고로 아래 자주 사용하는 MySQL 명령어를 표로 첨부해 두겠습니다.

 

  • MySQL 명령어
기능 명령어 사용예
시작하기  mysql -u 'ID' -p 'DB이름' mysql>mysql -u root -p (DB 최상위단으로 접속시)
DB 검색  show databases; mysql>show databases;
DB 만들기  create database 'DB이름'; mysql>create database Test;
DB 사용  use 'DB이름'; mysql>use Test;
Table 만들기  create table 'table이름'

 mysql>create table tempnhumi(

->temp float not null,

->humi float not null,

->primary key(temp)

->);

Table 검색  show tables; mysql>show tables;
Table 조회  select*from 'table이름'; mysql>select*from tempnhumi;
MySQL 종료 exit mysql>exit

 

 

 

 

 

반응형

+ Recent posts