1. MariaDB란?
MariaDB는 MySQL에서 파생된 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)이다. 현재 많은 기업과 개발자들이 MariaDB를 MySQL의 대안으로 사용하고 있다. MySQL이 유료로 전환되었기 때문.
2. MariaDB의 특징
1) 오픈 소스 및 MySQL과의 호환성
MySQL과 거의 동일한 명령어와 기능을 지원하여, 기존 MySQL 사용자도 쉽게 전환 가능.
2) 다양한 스토리지 엔진 지원
InnoDB, Aria, MyISAM 등 여러 스토리지 엔진을 지원하여 성능과 기능을 최적화 가능.
InnoDB는 데이터 무결성과 안전성을 보장하는 것이 특징이며 다양한 애플리케이션에서 기본적으로 사용됨.
Aria는 빠른 검색을 목표로 설계되었으며, 대량의 데이터를 빠르게 조회할 수 있음.
MyISAM은 단순한 구조로 설계되어 빠른 데이터 접근이 가능하지만 일부 기능이 제한적임.
여러 스토리지 엔진은 데이터 처리 방식 등에 차이가 있기 때문에 용도에 따라 적합한 방법을 선택해야 함.
3) 보안 및 성능 개선
사용자 인증 및 권한 제어 강화, 쿼리 최적화 기능 제공.
4) 클러스터링 및 고가용성 지원
Galera Cluster와 같은 클러스터링 기능을 활용하여 고가용성(HA) 구현 가능.
5) 강력한 트랜잭션 지원
ACID(Atomicity, Consistency, Isolation, Durability) 원칙을 따르는 트랜잭션 지원.
3. MariaDB 활용 분야
1) 웹 어플리케이션: WordPress, Magento, Drupal 등의 CMS(Content Management System)에서 사용
2) 데이터 분석: 대용량 데이터를 효율적으로 저장 및 분석
3) IoT 및 빅데이터: 다양한 디바이스에서 수집된 데이터 저장 및 처리
4) 기업 업무 시스템: ERP, CRM, 회계 관리 시스템 등의 백엔드 데이터베이스로 활용
4. 데이터베이스란?
데이터베이스란 체계적으로 데이터를 저장하고 관리하는 시스템이다. 데이터베이스는 여러 개의 테이블(표)로 구성되며, 테이블에는 다양한 데이터가 제공된다.
1) 관계형 데이터베이스(RDBMS, Relational Database Management System)
데이터가 테이블 형태로 저장되며, 테이블 간의 관계를 정의하여 관리한다. (MariaDB, MySQL, Oracle 등)
2) 비관계형 데이터베이스(NoSQL, Not Only SQL)
JSON, 키-값, 그래프 형태로 데이터를 저장하며, 스키마가 고정되지 않아 유연한 데이터 처리가 가능하다.
요즘 대세로 자리잡는 중. (MongoDB, Redis, Cassandra 등)
5. SQL(Structured Query Language) 개요
Structured Query Language, 직역하면 "구조화된 질의 언어". 즉 데이터베이스에서 정보를 요청하거나 조작하기 위해 고안된 구조화된 언어라는 뜻임. 데이터를 효율적으로 조회, 삽입, 수정, 삭제하는 것을 포함하여, 데이터를 저장하고 관리하는 모든 과정을 지원하도록 설계된 언어.
주요 SQL 명령어는 다음과 같이 분류됨.
1) DDL (Data Definition Language, 데이터 정의 언어)
데이터베이스, 테이블 등의 구조를 정의하는 명령어
2) DML (Data Manipulation Language, 데이터 조작 언어)
데이터를 조회, 삽입, 수정, 삭제하는 명령어
3) DCL (Data Control Language, 데이터 제어 언어)
데이터 접근 권한을 제어하는 명령어
4) TCL (Transaction Control Language, 트랜잭션 제어 언어)
데이터베이스 내의 트랜잭션을 제어하는 명령어
MariaDB root 계정으로 접속하기(Ubuntu)
sudo mysql -u root
- sudo(SuperUser Do, 관리자 권한)를 사용하면 비밀번호 입력 없이 root 계정으로 MariaDB에 접속됨.
데이터베이스 생성
CREATE DATABASE mydb;
- mydb라는 이름의 데이터베이스 생성.
데이터베이스 삭제
DROP DATABASE mydb;
- mydb를 삭제. 삭제한 데이터베이스는 복구 불가.
사용자 계정 생성 및 비밀번호 설정
CREATE USER 'user1'@'localhost' IDENTIFIED BY '1234';
- 'user1'@'localhost' 사용자를 생성하고 비밀번호를 '1234'로 설정.
- 'localhost'는 이 사용자가 로컬 서버(localhost)에서만 접속할 수 있음을 의미. 외부 접속을 허용하려면 '%'로 설정하거나 특정 IP주소 입력 가능.
사용자 삭제
DROP USER 'user1'@'localhost';
- 'user1'@'localhost' 계정을 삭제.
- 삭제된 사용자는 더 이상 MariaDB에 접속 불가.
root 계정에서 특정 사용자의 비밀번호 변경
ALTER USER 'user1'@'localhost' IDENTIFIED BY 'newpassword123';
- 'user1'@'localhost' 사용자의 비밀번호를 'newpassword123'으로 변경.
현재 로그인한 사용자가 자신의 비밀번호 변경
SET PASSWORD = PASSWORD('newpassword123');
- 현재 로그인한 사용자의 비밀번호를 변경.
특정 데이터베이스에 대한 모든 권한 부여
GRANT ALL PRIVILEGES ON mydb.* TO 'user1'@'localhost';
- mydb 데이터베이스의 모든 권한을 user1에게 부여.
- *는 모든 것을 의미. mydb.*는 mydb 데이터베이스에 속한 모든 것을 지칭.
특정 권한만 부여(예: 읽기 및 쓰기 권한)
GRANT SELECT, INSERT, UPDATE ON mydb.* TO 'user1'@'localhost';
- user1은 SELECT, INSERT, UPDATE 명령어만 사용할 수 있음.
특정 권한 회수
REVOKE INSERT, UPDATE ON mydb.* FROM 'user1'@'localhost';
- user1에게 부여된 INSERT, UPDATE 권한을 제거함.
권한 변경 사항 적용 (필수 시행)
FLUSH PRIVILEGES;
- 새로운 권한 설정이 즉시 반영되도록 적용.
사용자 계정 목록 조회
SELECT User, Host FROM mysql.user;
- MariaDB에 등록된 사용자 목록을 확인할 수 있음.
'그로스 마케팅' 카테고리의 다른 글
[ 멋쟁이사자처럼부트캠프 그로스마케팅 부트캠프 ] SQL 심화: 제약 조건, Table 연결 (8) | 2025.02.12 |
---|---|
[ 멋쟁이사자처럼부트캠프 그로스마케팅 부트캠프 ] SQL 기초 문법 (6) | 2025.02.11 |
[ 멋쟁이사자처럼부트캠프 그로스마케팅 부트캠프 ] Pandas : 기초 (0) | 2025.02.06 |
이거 변수다 (0) | 2025.02.06 |
그로스 마케팅 핥아보기 (1) | 2025.02.04 |