7주차 보고서 - l3ye/DoHeon-embedded-system GitHub Wiki
💡MariaDB 란
1.개요
- 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)
- 데이터를 표(table) 형태로 저장하고 SQL로 관리할 수 있는 프로그램이다.
2.특징
- 구조: MySQL과 거의 동일한 구조 (서버, 클라이언트, SQL 인터페이스 등)
- 호환성: MySQL의 명령어, 데이터 형식, API 대부분 그대로 사용 가능
- 성능: InnoDB 외에도 Aria, ColumnStore, TokuDB 등 다양한 스토리지 엔진 지원
- 안정성: 오픈소스 기반으로 투명한 업데이트와 보안 패치 제공
- 커뮤니티: 오라클 중심의 MySQL보다 전 세계 개발자 커뮤니티 중심으로 운영
- 확장성: 클러스터링, 복제(Replication), 샤딩 등 다양한 분산 기능 지원
3.MySQL PostgreSQL과의 차이점
4.주요 구성 요소
- MariaDB Server: 핵심 DBMS 엔진
- MariaDB Client: 명령어로 데이터 관리하는 CLI 도구 (mysql 명령과 동일)
- MariaDB Connector: 다양한 언어(PHP, Python, Java 등)와 연결해주는 라이브러리
5.사용 예시
- 웹 서비스(예: WordPress, phpMyAdmin)
- ERP, CRM 등 내부 시스템
- 데이터 분석용 백엔드
- 클라우드 기반 DB 서비스 (AWS, Azure, Google Cloud 등에서 지원)
💡MariaDB 설치
MariaDB 설치
- sudo apt-get install mariadb-server
mySQL 서비스
- sudo service mysql start
- sudo service mysql status
- sudo mysql -u root -p 입력 후 enter
만들어둔 데이터베이스들 조회
- show databases; 입력
테이블 생성
- USE raspi_dht11;
- CREATE TABLE collect_data ( sensor VARCHAR(30) NOT NULL, time DATETIME NOT NULL, temp_c FLOAT, temp_f FLOAT, humidity FLOAT ); 입력
- show tables; 로 테이블 생성 확인
- INSERT INTO collect_data VALUES('dht11', '2025-11-05 15:33:14', 27.4, 55, 40); 입력하여 데이터 삽입
- SELECT * FROM collect_data; 로 확인 가능
- 실습 전 테이블을 비우기 위해 truncate collect_data; 입력
- CREATE USER 'user'@'%' IDENTIFIED BY 'password'; 입력해서 유저를 생성
GRANT ALL PRIVILEGES ON raspi_dht11.* TO 'user'@'%'; 를 입력해 DB의 모든 권한 부여
💡Node-Red - mariaDB 연동
- Node-Red 에 mysql 설치 후 확인
- node-red-contrib-dht-sensor 설치
- 노드 구성 및 설명
- 타임스태프
- rpi-dht11
- function
- raspi_dht11
- 라즈베리 파이에 dHt11 연결
- SELECT * FROM collect_data ORDER BY time DESC LIMIT 20;를 통해 결과 확인
💡USB 카메라 설치 및 연동
- npm install node-red-contrib-usbcamera,sudo apt-get install fswebcam 입력
- v4l2-ctl --list-devices로 카메라 연결 확인
- sudo apt install feh 입력
- fwsebcam -d /dev/video0 test_image.jpg 로 카메라 테스트
- xdg-open test_image.jpg 로 확인
필요한 노드 설치
- 다음과 같이 구성
- 온도
- 습도
- usb카메라
- function
- camera view
- image preview