MySQL Database 및 User 관리

David Jeon·2022년 12월 13일
1
post-thumbnail

응용 S/W 개발을 위해 MySQL Database 생성과 사용자를 생성해보자.

용어 정리

  • DB (Database) : 조직의 여러 시스템이 공유할 수 있도록 저장된 데이터의 집합을 의미
  • DBMS (Database Mansgement System) : 데이터베이스를 공유할 수 있도록 관리해 주는 소프트웨어 시스템
  • RDB (Relational Database) : 관계형 데이타 모델에 기초를 둔 데이타베이스
  • RDBMS (Relational Database Management System) : 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어
    예) Oracle, MySQL, MS SQL, PostgreSQL etc
  • SQL (Structured Query Language) : 구조적 질의 언어로 관계형 데이터베이스 시스템에서 Data를 관리 및 처리하기 위해 설계된 언어

# 참고) Database 종류

  • RDB : 관계형 데이타 모델에 기초를 둔 데이타베이스
  • Nosql : Not Only SQL로 유연하게 데이터를 처리할 수 있다는 장점이 있지만 데이터 유실가능성 있음. DB의 종류로는 Key Value DB, Wide Columnar Store, Document DB, Graph DB가 있음
  • Time Series Database(시계열DB) : 빠르고 정확하게 실시간으로 쌓이는 대규모 데이터들을 처리할 수 있도록 설계됨. 주로 시스템과 서비스 로그를 취합하여 대용량 데이터 분석에 활용함
    etc..

<최근 DB Trande>
아래 그래프를 보면 최근 Time Series Database(시계열DB)의 증가세를 확인할 수 있다.
최근 현업에서는 MSA가 활성화 됨에 따라 구축하는 시스템에 따라 필요한 특징의 DB를 선택하여 개발하고 있는데 정형화된 데이터의 Transaction 처리를 위해서는 RDB, 비정형 대용량 데이터의 처리는 시계열DB를 선택하여 시스템을 구축하는 사례가 늘어나고 있다.

RDB 특징

  • 모든 Data를 2차원 Table(entity)로 표현
  • 테이블은 row(record/tuple)와 column(field/item/attribute)으로 이루어진 기본 데이터 저장 단위
  • Database는 상호 관련이 있는 하나 이상의 Table로 구성됨
  • Table 간의 관계(Entity Relationship)를 이용하여 Data를 효율적으로 관리 가능
  • Data 관리가 쉽고, 확장이 용이함

1.Database 관리

  • MySQL은 기본적으로 "mysql"이라는 Database로 관리함
  • root User가 Database 관리 가능

1) MySQL root 사용자가 관리하는 Table 목록 보기 : mysql> SHOW TABLES;

2) Database 조회

  • mysql> SHOW DATABASES;

3) Database 생성

  • mysql> CREATE DATABASE TEST_DB;

4) Database 삭제

  • mysql> DROP DATABASE TEST_DB;
  • 이후 작업을 위해 다시 TEST_DB 생성

2. User 관리

  • MySQL8 Version부터는 User 생성과 권한부여를 각각 진행해야 함

  • root User가 User 관리 가능
    1) User 생성

    • mysql> CREATE USER test_user@localhost IDENTIFIED BY 'testpw';

    2) 권한 부여

    • mysql> GRANT ALL ON TEST_DB.* TO test_user@localhost;
    • mysql> flush privileges; <= 설정한 권한 적용
    • 권한 확인) mysql> SELECT USER, HOST FROM USER;

    3) 권한 확인하기

    • mysql> SHOW GRANTS FOR 사용자명;

    4) 생성한 User로 Database 접속

    • mysql> SHOW TABLES;

      • information_schema : Database 내에 존재하는 메타 정보(Table, Column, Index 등의 Schema 정보)를 모아둔 MySQL가 관리하는 Database로 읽기 전용임.
      • performance_schema : 런타임에 서버의 내부 실행을 검사하는 방법을 제공.
        서버 이벤트(함수 호출, 운영 체제 대기, 구문 분석 또는 정렬과 같은 SQL 문 실행 단계)를 모니터링.
        이벤트 콜렉션은 서버 및 여러 스토리지 엔진에 대한 동기화 호출 (예 : 뮤텍스) 파일 및 테이블 I/O, 테이블 잠금 등에 대한 정보에 대한 액세스를 제공. etc.
      • test_db : 응용 S/W에서 사용하기 위해 생성한 Database

    5) 권한 삭제

    • mysql> revoke all on TEST_DB.* from test_user@localhost;

    6) User 삭제

    • mysql> DROP USER test_user@localhost;
profile
코딩이 즐거운 아저씨

0개의 댓글