[클라우드 With리눅스/쉘프로그래밍(9) - DB 이용하기]

SooYeon Yeon·2022년 8월 22일

클라우드 With리눅스

목록 보기
34/39

MariaDB실습

systemctl enable mariadb --now
systemctl status mariadb | grep Active

mysql_secure_installation
mysql -u root -p1234
create database mytest;
use mytest;
  • 권한 부여
MariaDB [mytest]> GRANT INSERT,SELECT,DELETE,UPDATE,CREATE ON mytest.* TO 'testuser'@'localhost' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.000 sec)

MariaDB [mytest]> GRANT INSERT,SELECT,DELETE,UPDATE,CREATE ON mytest.* TO 'testuser'@'%' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.001 sec)

MariaDB [mytest]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.000 sec)
  • testuser로 로그인
mysql mytest -u testuser -p1234
  • employees 테이블 생성
MariaDB [mytest]> CREATE TABLE employees (
    -> empid int not null,
    -> lastname varchar(20),
    -> firstname varchar(20),
    -> salary float,
    -> primary key(empid)
    -> );
  • 값 입력 후 확인
MariaDB [mytest]> INSERT INTO employees VALUES (1,'홍','길동',3300);
Query OK, 1 row affected (0.002 sec)

MariaDB [mytest]> INSERT INTO employees VALUES (2,'김','철수',4300);
Query OK, 1 row affected (0.001 sec)

MariaDB [mytest]> INSERT INTO employees VALUES (3,'박','영희',4500);
Query OK, 1 row affected (0.002 sec)

MariaDB [mytest]> SELECT * FROM employees;
+-------+----------+-----------+--------+
| empid | lastname | firstname | salary |
+-------+----------+-----------+--------+
|     1 || 길동      |   3300 |
|     2 || 철수      |   4300 |
|     3 || 영희      |   4500 |
+-------+----------+-----------+--------+
3 rows in set (0.000 sec)

Quiz

mkdir로 usr/test 만들고, 해당 디렉토리를 PATH 변수에 포함시키기

다른 환경으로 로그인하면 초기 시스템 환경변수로 변경됨

[root@sooyeon 0728]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@sooyeon 0728]# mkdir /usr/test

[root@sooyeon 0728]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@sooyeon 0728]# PATH=$PATH:/usr/test
[root@sooyeon 0728]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/test
  • DB처럼 같이 열이 4인 경우 DB에 정상입력됨
#!/bin/bash

if [ $# -ne 4 ]
then
        echo "잘못된 입력 발견 : (사용법) -> ./test2.sh 번호 성 이름 연봉"
else
        # 정상입력인 경우
        mysql mytest -u root -p1234 -e "insert into employees values ($1,'$2','$3',$4)"
        #데이터 입력 결과 확인
        if [ $? -eq 0 ]
        then
                echo "데이터 입력 성공"
        else
                echo "데이터 입력 실패"
        fi
fi
[root@sooyeon 0728]# ./test2.sh 5 박 문수 5000
데이터 입력 성공
[root@sooyeon 0728]# mysql mytest -u root -p1234 -e 'select * from employees'
+-------+----------+-----------+--------+
| empid | lastname | firstname | salary |
+-------+----------+-----------+--------+
|     1 || 길동      |   3300 |
|     2 || 철수      |   4300 |
|     3 || 영희      |   4500 |
|     5 || 문수      |   5000 |
+-------+----------+-----------+--------+

[root@sooyeon 0728]# ./test2.sh 5 이 둘리 5000
ERROR 1062 (23000) at line 1: Duplicate entry '5' for key 'PRIMARY'
데이터 입력 실패

Quiz

$RANDOM : 0~32967중 랜덤 생성

# 1~10까지 뽑음
[root@sooyeon 0728]# echo $((RANDOM%10+1))
8
# 100~110까지 뽑음
[root@sooyeon 0728]# echo $((RANDOM%11+100))
101
# 200~300까지 뽑음
[root@sooyeon 0728]# echo $((RANDOM%101+200))
200

사용자 ID는 수동으로 직접 선택하지 말고 RANDOM을 이용하여 10000~20000사이에서 선택하도록 하고 이를 DB로 전달한다.

단, 처음 프로그램이 실행되면 해당 번호가 DB에 존재하는 지 여부를 먼저 확인하고 존재한다면 해당번호를 ID로 하여 DB에 추가

#num=$((RANDOM%10001+10000))
#echo "랜덤넘버는 $num"

[root@sooyeon 0728]# ./test3.sh '김' '길동' 3030

랜덤넘버는 11901
데이터 입력 성공
[root@sooyeon 0728]# mysql mytest -u root -p1234 -e 'select * from employees'
+-------+----------+-----------+--------+
| empid | lastname | firstname | salary |
+-------+----------+-----------+--------+
|     1 || 길동      |   3300 |
|     2 || 철수      |   4300 |
|     3 || 영희      |   4500 |
|     4 || 길동      |  35000 |
|     5 || 문수      |   5000 |
| 10829 || 철수      |  45000 |
| 11901 || 길동      |   3030 |
| 13562 || 길동      |  35000 |
+-------+----------+-----------+--------+

[root@sooyeon 0728]# cat test3.sh
#!/bin/bash

num=$((RANDOM%10001+10000))
echo "랜덤넘버는 $num"

if [ $# -ne 3 ]
then
        echo "잘못된 입력 발견 : (사용법) -> ./test2.sh 번호 성 이름 연봉"
else
        mysql mytest -u root -p1234 -e "select empid from employees where empid=$num" > EOF
        if [ $? -eq 0 ]
        then
                echo "데이터 입력 성공"
                mysql mytest -u root -p1234 -e "insert into employees values ($num,'$1','$2',$3)"
        else
                echo "데이터 입력 실패"
        fi
fi

aws에서 인스턴스 생성 시 : region(a,b,c), zone(a) 리전선택시 CPU 전체 상태를 보고

0개의 댓글