DB의 4원칙(ACID)
Automicity 원자성 (all or nothing)
여러 작업( Transaction )을 더 이상 쪼갤 수 없는 단위(원자)로 나누어 처리
모두 성공한다면 commit
consistency 일관성
트랜잭션 수행 전후로 데이터 일관성 유지
Isolation 고립성
트랜잭션 간 독립성이 보장
Duration 지속성
적용 상태 이후 해당 상태가 적절한 변화 이전까지는 계속 유지
11.2 MariaDB 설치와 운영
dnf repolist
리포지터리 리스트
1. dnf -y install mariadb-server
- 서버 mariadb-server
- 서비스 mariadb
2. systemctl --now enable mariadb
3. firewall-cmd --add-service=mysql && firewall-cmd --reload
- 3306 mysql 포트 번호
11.2.2 windows에서 리눅스 MariaDB 서버로 접속
데이터베이스의 사용자는 운영체제의 사용자와 별개의 사용자이다.
그러므로 matiaDB 서버에 접속하려면 원칙적으로 mysql -h 접속할컴퓨터 -u DB사용자이름 -p 명령을 실행한 후 데이터베이스 사용자의 비밀번호를 입력하고 접속해야 한다.
mariaDB 서버를 설치하면 별도의 데이터베이스 사용자를 생성하지 않아도 root라는 이름의 데이터베이스 사용자가 비밀번호없이 자동으로 생성된다.
따라서 mariaDB 서버를 설치한 직후에는 데이터베이스 사용자 root의 비밀번호를 변경해 데이터베이스 보안의 기본을 지켜야 한다.
windows에서 리눅스 MariaDB 서버로 접속
1. 윈도우에서 리눅스의 mariaDB 서버에 접속하기 위해 mariaDB 클라이언트 설치
2. window powershell에서 접속 시도
접속이 실패된다. mariaDB는 내부적으로 사용자 이름에 '사용자이름@현재컴퓨터IP'를 붙여 접속한다.
따라서 현재 사용자는 존재하지 않으므로 접속이 거부된 것이다.
mariaDB에 접속하는 과정이 까다롭게 느껴질 수 있지만 이는 보안을 위해 꼭 필요한 과정이다.
mariaDB에 접속하기 위해선 미리 지정해 둔 컴퓨터에서만 접속할 수 있다.
3. Window를 통해 접속할 사용자를 생성
- mysql -u root -h localhost -p
- use mysql
- GRANT ALL ON *.* TO 'winuser@192.168.111.%' IDENTIFIED BY 'qwer'; (GRANT ON TO 명령어)
* DROP USER root@'192.168.111.%' <- 권한 삭제
4. window powershell에서 접속
11.2.3 MariaDB 데이터베이스 생성과 운영
1. 기본 문자 인코딩 설정(server A)
vi /etc/my.cnf.d/charset.cnf
[mysqld]
character-set-server = utf8mb4
[client]
default-character-set = utf8mb4
2. DB 생성(powershell)
- MariaDB [(none)]> CREATE DATABASE shopping_db CHARACTER SET utf8mb4;
- SHOW DATABASES;
- 데이터베이스가 저장되는 디렉터리: /var/lib/mysql/
3. 테이블 생성
필드의 데이터 형식 제한
VARCHAR(n) - 가변 길이 문자열 / 입력 값에 따라 용량이 변화
CHAR(n) - 고정 길이 문자열 / 입력 값에 따라 용량이 변화X = 용량은 고정 값
INT - 정수
FLOAT - 실수
DATE - 날짜
TIME - 시간
- MariaDB [(shopping_db)]> CREATE TABLE purchase (no INT NOT NULL PRIMARY KEY AUTO_INCREMENT, cust_id VARCHAR(10), date DATE, product VARCHAR(5));
- DESC purchase; - 테이블의 구조 확인 가능
NOTE
- NOT NULL: NULL값을 허용하지 않는다
- PRIMARY KEY: 해당 필드를 주 티로 지정한다.
- AUTO_INCREMENT: 별도의 값을 입력하지 않고, 자동으로 입력 값이 증가하는 필드로 만든다.
4. 테이블 행 입력
- INSERT INTO purchase VALUES (null, 'hong', '20160122', 'TV');
NOTE
####mariadb 자동완성####
dnf -y install epel-realase
pip3 install --upgrade --ignore-installed pip setuptools
pip3 install mycli
#1. 연구문제
Server B를 초기화 한 후 다음과 같은 작업을 수행하시오.
- Server B를 MariaDB의 DBMS로 사용하시오.
- 동료와 연결하되, 동료의 어느 클라이언트에서든 접근 할 수 있도록 만드시오.
- 공유 디렉터리의 더미 데이터를 연결한 상대방의 DBMS내부에 입력하시오. (설계는 임의로 하시오)
'Linux' 카테고리의 다른 글
Ch.10 메일 서버 설치 및 운영 (0) | 2024.05.07 |
---|---|
Ch.12 웹 서버 설치 및 운영 (0) | 2024.04.29 |
Ch.7 셸 프로그래밍 (0) | 2024.04.18 |
Ch.9 네임 서버 설치 및 운영 (0) | 2024.04.16 |
Ch.6 하드디스크 관리와 사용자별 공간 할당-2 (0) | 2024.04.04 |