2024_0223_MariaDB

이기태·2024년 2월 23일

리눅스

목록 보기
24/27

1. DB Server

  • DB 종류
    SQL: Oracle, MS-SQL, Mysql/MariaDB, PostgreSQL,
    NoSQL: MongoDB, Redis, ....

  • RDBMS 종류
    상용: Oracle Oracle 19c, MS-SQL, IBM DB2
    무료: MySQL/MariaDB, PostgreSQL

  • DB 관련 용어
    DB S/W
    DB
    Table
    Data(Column, Row)

  • SQL(Structed Query Language)
    종류:
    DDL(Data Definition Language): create, drop, alter
    DML(Data Manipulation Language): select, insert, update, delete
    DCL(Data Control Language): grant, revoke, commit, rollback

  • 대표적인 DB Listener Port
    Oracle: 1521/tcp
    MS-SQL: 1433/tcp
    Mysql/MariaDB: 3306/tcp
    PostgreSQL: 5432/tcp
    MongoDB: 27017/tcp
    Redis: 6379/tcp

  • CRUD(Create Read Update Delete)

  • key(index)
    PK(primary key)
    UK(Unique Key)
    FK(Foreign Key)

2. DB Server 설정 절차

  1. 패키지 설치
    # yum -y install mariadb mariadb-server

  2. 서버 기동
    # systemctl enable --now mariadb

  3. 서비스 설정
    # mysql_secure_installation

  4. 방화벽 등록
    # firewall-cmd --premanent --add-service=mysql

  5. SELinux(?)

3. DB Server 설정 + 실습

패키지: mariadb-server ,mariadb
데몬 & 포트 & 프로토콜: mysqld(3306/tcp)
주 설정 파일: /etc/my.cnf
하위 설정 파일: /etc/my.cnf.d/* .cnf
서비스: mariadb.service


[ex] 기본 설정 확인
[ex] mysql_secure_installation 스크립트
[ex] mysql sample database 다운로드 && import
[ex] WEB-DB 연동
[참고] https://www.w3schools.com/php/php_mysql_connect.asp

[ex] DB 관리

1) DB 관리

  • DB 목록 확인
    show databases;

  • DB 선택
    use DBname;
    select database(); // 현재 DB 확인
    select version(); // 버전 확인

  • DB 생성
    create database newDBname;

  • DB 삭제
    drop database DBname;

2) DB Table 관리

3) DB Table Contents 관리

  • Table 내용 확인
    select * from tablename where name like '%e';
  • Table 내용 입력
    insert into tablename(id,name,passwd) value ( 1, 'lee', '1234');

  • Table 내용 업데이트
    update tablename set name='kim', passwd='4321' where id=1;

  • Table 내용 삭제
    delete from tablename where id=3;

4) 사용자 관리

  • 사용자 생성
    create user user1@localhost
    create user user@'%' identified by 'passwd' // 원격 호스트 생성

  • 사용자 암호 변경
    alter user user@'%' identified by 'passwd';

  • 사용자 삭제
    drop user user@'%';

  • 사용자 권한 부여
    grant all privileges on DB.TABLE to user@'%';

  • 사용자 권한 제거
    revoke all privileges on DB.TABLE from user@'%';

  • 사용자 권한 확인
    show grants;
    show grants for user@'%';

5) 장애 처리

  • DB 인증 실패
    1) 방화벽
    2) /etc/my.cnf, /etc/my.cnf.d/* .cnf (mysqld 섹션)
    bind_address=0.0.0.0
    skip-networking=1
    3) 사용자 이름 점검
    4) 사용자 암호 점검

  • DB 권한 싪패
    1) 사용자 권한 확인

6) 백업 복구

  • Backup Target: /var/lib/mysql
  • Backup Method:
    1) 물리적 백업
    2) 논리적 백업
    -> Logical DB Backup
    (DBNAME 백업)
    # mysqldump -u root -p DBNAME > /backup/DBNAME.dump

(전체 DB 백업)
# mysqldump -u root -p --add-databases > /backup/FullDB.dump

-> Logical DB Restore
(DBNAME 복원) 사전에 DB 생성
# mysql -u root -p newDBNAME < /backup/DBNAME.dump

(전체 DB 복원)
# mysql -u root -p < /backup/FullDB.dump

[참고]
mysql CMD
mysqladmin CMD
mysqldump CMD

0개의 댓글