6주차 수업 실습 보고서 _ Maria DB (데이터베이스) - seungyongjee/raspi-report GitHub Wiki
sudo apt-get install mariadb-server
sudo service mysql start
sudo mysql -u root -p
- 비밀번호를 설정하지 않았기 떄문에 공란으로 두고 Enter
set password for 'root'@'localhost'=password('(비밀번호)');
- (비밀번호) 칸에 비밀번호 입력
CREATE user 'rasp'@'localhost' IDENTIFIED BY 'seung'
- **작성자 기준 **
- 계정이름 : rasp
- 비밀번호 : seung
아래 코드로 입력
CREATE DATABASE (DB 이름) CHARACTER SET utf8 collate utf8_general_ci;
작성자 코드
CREATE DATABASE raspdht11 CHARACTER SET utf8 collate utf8_general_ci;
- (DB 이름 : raspdht11 )
아래 코드로 입력
grant all privileges on <DB name>.* to <user name>;
작성자 코드
grant all privileges on raspdht11.* to 'rasp'@'localhost';
- 아래 코드 활성화
flush privileges;
-
위 창에서
exit;
입력하여 접속 종료 -
다시 새로 만든 계정에 접근하기 위해 아래 코드 입력
sudo mysql -u rasp -p
-
Enter 후에 비밀번호는 "Enter password:" 입력 (눈에 안 보이게 가려짐)
show databases;
로 데이터베이스 검색
use raspdht11;
- Database changed 확인
CREATE TABLE collect_data(sensor varchar(30) not null, collect_time datetime not null, temp_c float, temp_f float, humidity float);
DB에 새 테이블을 아래와 같이 생성
- sensor
- collect_time
- temp_c
- temp_f
- himidity
- Node-RED에 접속하여 mysql 노드 설치
아래처럼 노드 배치
inject - dht11 - function - mysql
- inject
지정된 시간간격 : 3초
- dht11
(5주차와 동일)
- function
아래 코드 입력
var sensor = "'" + msg.topic + "'";
var timezoneOffset = new Date().getTimezoneOffset() * 60000; var timezoneDate = new Date(Date.now() - timezoneOffset); var collect_time = timezoneDate.toISOString().slice(0, 19).replace('T', ' ');
var temp_c = msg.payload;
var temp_f = temp_c * (9/5) +32;
var humidity = msg.humidity;
msg.payload = [sensor, temp_c, temp_f, humidity, collect_time]
msg.topic="INSERT INTO collect_data (sensor,temp_c,temp_f,humidity,collect_time)"; msg.topic=msg.topic+"VALUES(?,?,?,?,?)";
return msg;
-
mysql
-
Database 옆의 버튼을 눌러서
- 아까 만든 계정정보를 입력
- User : rasp
- Paseword : seung
- Database : raspdht11
DB 다시 계정에 접근하여 아래 코드 입력후 실행 (Step.2,3 참고)
select * from collect_data
- 3초 간격으로 데이터를 출력합니다.