Linux

DB Server 이론 정리

옴뇸뇸 2022. 12. 13. 16:21

DB server
 - Database Server; database가 모여있는 서버

 - 컴퓨터의 보급과 인터넷의 확장, 스마트폰의 등장으로 무수히 많은 데이터가 생성됨
    -> 데이터를 효율적으로 관리하기 위해 Database를 사용


 - CentOS는 6버전까지는 mysql을 기본 탑재했으나 7버전부터 mariadb로 변경


 - 정보
   패키지       : mariadb-*
   데몬           : mariadb
   방화벽       : service=mysql, port=3306/tcp
   설정파일   : /etc/my.cnf   <- DB servder 동작 자체에 대한 설정



 - 접속 명령
   mysql -u DB사용자명 -p [사용할 database]

 - 용어 정리
   SQL문      : DB서버 내부에서 사용하는 명령어
   database   : table들의 집합체
   table      : 실제 데이터가 저장되는 영역, field와 value로 구분
   field      : table에 입력할 data의 종류와 길이를 지정(=column)
   value      : table에 입력되는 data



 - 명령어
   system clear;  = (ctrl + l)                                               : clear 명령어
   select version(), current_date, current_time;    : 생성한 DB서버의 버전과 생성 날짜, 시간을 확인하는 명령어
   show databases;                                                             : Database 목록 출력
   show tables;                                                                     : 내가 속해있는 database가 가지고 있는 table 목록 출력
   \c                                                                                            : 명령어를 완전히 잘못 입력했는데 다음줄로 넘어갔을 때 사용 (cancle)
   create database DB명;                                                  : 해당 database 생성
   use DB명;                                                                            : 해당 database로 변경
   create table tabl명(field명 자료형(크기),...);           : 해당 table 생성


                        *  이 때 크기는 byte 단위로 RAM에서 사용되는 크기가 아니라 하드웨어에 저장되는 크기임. 
                            하드웨어에 저장될 때 문자, 숫자, 특수문자 등은 1byte로 저장됨. 따라서 int(3)은 3byte 숫자 3개를 말함. 
  


   desc table명;                                                                    : 해당 table 확인

   drop table table명;                                                        : 해당 table 삭제
        database database명;                                             : 해당 database 삭제

   select data명
   from table명
   where 조건;
   
   delete
   from table명
   where 조건;

   update table명 set field명=수정할값
   where 조건;

   insert into table명(vlaue값을 넣을 filed) values(table에 넣을 value값을 순서대로 입력);

   alter table table명 modify field명 수정값
         database database명 modify 수정할대상 수정값
       > modify 말고도 add, drop, change 등 사용가능


   grant all on <DB명>.* to <user명>@localhost identified by '비밀번호 hash';
   grant all on <DB명>.* to <user명>@'%' identified by '비밀번호 hash';

                             * 값 입력할 때 문자는 ''로 묶어주기

 


flush privileges 권한 변경 사항을 적용시킴



초기상태 필수 작업
  - user table root 사용자 접속 비밀번호 설정하기
  - user,db table 익명 사용자 삭제하기


* 초기 상태 필수 작업 실습

 

mariadb 패키지 설치 후 진행

 

mariadb 방화벽 설정

서비스  실행 후 처음 접속 시 비밀번호는 설정되어 있지 않다

 

mysql database의 user table을 확인 해보면

 

root 사용자의 비밀번호가 설정이 안되어있는 것을 확인할 수 있다

비밀번호를 설정해주고 익명 사용자를 삭제 해준다

 

root 계정 접속 비밀번호 설정
익명 사용자 제거
db table 익명 사용자 제거