220418

HyeonKi Jo·2022년 4월 17일
0
post-thumbnail

복습

  • SAMBA
    - 윈도우용

  • NFS
    - 리눅스용이다.

  • DATABASE
    - 구축을 해놓는다.

  • 현재 우리 강의실과 우리의 PC는 강의실의 실제 NAT와 PC에서의 가상NAT 이렇게 두개가 존재한다.

  • 이 네트워크는 AWS의 VPC의 형태와 유사한 네트워크이며, 이 스타형 네트워크는 실무에서 많이 쓰이는 중요한 네트워크이다.

  • 실제 강의실도 internal과 external이 존재한다.

  • 브릿지라는 장치는, 가상랜카드(Vbox)와 실제랜카드(PC)를 이어주는 것이다.
    - 이 다리로, IP가 다닌다. IP공유기가 뿌려주는 IP를 Bridge가 가상 랜카드로 옮겨준다.

  • 만약 내부 서버들의 네트워크를 내부네트워크가 아닌, bridge로 바꾸면 가상NAT에서 IP를 받고 통신하는 것이 아니라 실제 공유기에서 바로 통신이 가능하다. 또, 내부 네트워크에서 벗어나 강의실의 공유기의 컨트롤을 받는다.

  • 그러나 내부 네트워크로 만드는 이유는, 보안 때문이다. 또, AWS VPC에서도 Isolated (독립적)으로 만드는 것이 이 내부 네트워크를 뜻하고, 역시 보안의 이유이다.


    Load Balancing (부하 분산)

  • 서버가 두개 이상일 때, 서버 한쪽에만 작업이 몰리지 않도록 부하를 분산하는 시스템

  • 서버의 가용성 때문이다.


    Fail Over

  • 두대의 서버중 하나가 문제가 생기면, 다른 서버가 그 일을 이어받는다.

  • 보통 Load Balancing(부하분산)과 동시에 존재한다. 이 또한, 서버의 가용성 때문이다.


    클러스터

  • 위와 같은 서버들의 관리를 위해 서버들을 하나로 묶은 것을 클러스터라고 한다.


    헬스체크

  • 각 서버의 신호를 보내, 기간안에 응답을 하지 못하면, 서버가 다운되었다고 판단하면, 클러스터 그룹에서 제외하고 FailOver를 시킨다.

  • 그 후에도 계속 신호를 보내, 응답을 하게 된다면 다시 클러스터 그룹에 포함시키고 작동시킨다.

프로젝트

  • 실제 물리적인 스위치를 가지고 네트워크를 구성하게 된다.

NFS(Network File System; file storage -> 네트워크 파일 공유 -> 리눅스용 파일 시스템) -AWS EFS - 완전 관리형 서비스

  • 네트워크 파일 시스템(Network File System, NFS)은 1984년에 썬 마이크로시스템즈가 개발한 프로토콜입니다.
  • 클라이언트 컴퓨터의 사용자가 네트워크 상의 파일을 직접 연결된 스토리지에 접근하는 방식과 비슷한 방식으로 접근하도록 도와 줍니다.
  • 다른 수많은 프로토콜과 마찬가지로 ONC RPC 시스템을 기반으로 합니다.
  • 네트워크 파일 시스템은 RFC에 정의된 오픈 표준이므로 누구나 구현할 수 있습니다.

서버

  • yum install -y nfs-utils : nfs 도구 설치
  • mkdir /share && cd $_ : /share폴더를 만들고 그 폴더로 바로 이동
  • echo "Hello~ It's me." > test.txt : 공유가 되는것을 확인하기위해 txt파일을 만들어 준다.
    - > : 표준출력재지정, echo는 화면에 출력해주는 명령어지만, >으로 출력을 입력으로 바꾸었다.
  • vi /etc/exports : nfs 접근 제어, 아래 /share폴더를 172.31.0.1~172.31.0.254 (0:네트워크, 255:브로드캐스트 제외)의 IP주소들에게 허용하겠다.
/share 172.31.0.0/24(rw, sync)
#/share *(rw, sync) 여기서 *는 anyware, 모든 주소를 허용한다는 뜻이다.
  • chmod 707 /share : 접근권한을 소유자와 접근자에게 7을 준다. 만약 다운로드만 하게 하려면 r, 4, 업로드를 하려면 w, 2를 주게 된다.
  • systemctl enable --now nfs-server : 잊지말고 start와 enable해준다.
  • exportfs -v : nfs /share설정 확인
  • firewall-cmd --permanent --add-service=nfs : nfs방화벽 허용
  • firewall-cmd --permanent --add-service=rpc-bind : rpc-bind 방화벽 허용
  • firewall-cmd --permanent --add-service=mountd : mountd 방화벽 허용
  • firewall-cmd --reload : 방화벽 설정 변경 후, 새로고침

클라이언트 (각 VM에 다 설정해준다.)

  • rqm -qa | grep nfs-utils : 내가 지금 설치한 패키지들 중, nfs-utils가 있는지확인
  • yum install -y nfs-utils : 클라이언트서버에서도 nfs-utils설치
  • showmount -e [NFS서버IP address] : mount할 수 있는지 확인한다.
  • mkdir share : 서버의 /share폴더를 마운트해서 사용할 share폴더를 만들어주겟다.
  • mount -t nfs [NFS서버IP address]:/share /root/share
    - mount하는데, nfs방식으로 마운트 한다.
    • 서버의 /share를 클라이언트의/root/share폴더에 마운트한다.
  • df -f : 확인
  • vi /etc/fstab : 이후에도 자동으로 마운트하도록 vi에서 설정을 추가할 수 있다.
    - vi하지 않고도, echo "172.31.0.100:/share /root/share nfs defaults 0 0" >> /etc/fstab 이렇게 추가할 수 있다.
  • df -h : 마운트 된것을 확인한다.
  • blkid : block storage id

데이터베이스서버 (Database Management System; MariaDB) - AWS RDS - 완전 관리형 서비스

  • MariaDB는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다.
  • MySQL과 동일한 소스 코드를 기반으로 하며, GPL v2 라이선스를 따릅니다.
  • 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 반발하여 만들어졌습니다.

  • 우리는 DBMS를 설치할 것이다.
  • AWS의 RDS를 실습할 수 있는 환경을 구축하고, 또 실습할 것이다.

서버

  • repo = repository(저장소)
    - repository를 왜 써야 하는가/
    • yum으로 설치하면 최신버전이 아닐 수 있다. (CentOS7은 버전관리가 잘 안된다.)
    • 그래서 최신버전, 원하는 버전으로 설치하기 위해 , 별도의 repository를 만들고, 설치한다.
    • docker나 kubernates에서도 쓰일 수 있다.
  • vi /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
  • yum install -y MariaDB : 마리아 DB설치
  • rpm -qa | grep MariaDB : 마리아DB패키지 확인
  • 서버, 클라이언트, 그리고 두가지 유틸리티 해서 4가지를 다운받았다.
  • mariadb --version : 버전확인으로 설치가 되었는지 확인한다.
  • systemctl enable --now mariadb : 설치가 제대로 되었다면, start와 enable설정을 해준다.
  • mysql_secure_installation : mariadb는 mysql과 비슷하기 때문에 보안관련 다운로드 및 설정도 mysql설정으로 진행할 수 있다.
    - Enter current password for root: 현재 비밀번호 없으니 엔터를 누른다.
    • Switch to unix_socket authoentivation : 잘 모르는 세팅은 기본값 (대문자 표시) Y를 누른다.
    • Change the root password? : root비밀번호를 새로 설정한다.
    • Remove anonymous users : 익명유저 삭제
    • Disallow root login remotely: 루트의 원격접속 허락여부, Y누른다.
    • Remove test database and access to it? : 테스트데이터베이스 삭제
    • Reload privilege tables now? : privilege 테이블 새로고침
  • systemctl restart mariadb : mariadb설치 후 재시작 한번 해준다.
  • mysql -u root -p : mksql -u 유저 root로 -p 하겠다.
CREATE USER '[ID]'@'%' IDENTIFIED BY '[PW]';
#[ID]'@'%' : `@`는 ssh root@~~~ 처럼 주소를 표현하는 것이고, `%`는 Anywhere 를 뜻한다. 즉, `%` 어디서든 접속하는 유저를 받아준다는 뜻이다. 	
#반대로, [ID]@`'localhost'`로 바꿔주면 

CREATE DATABASE IF NOT EXISTS wordpress;
# wordpress라는 DB가 존재하지 않는다면 생성한다.

GRANT ALL PRIVILEGES ON wordpress.* TO '[ID]'@'%';  
#권한을 부여한다. 
#wordpress라는 database에서
#ALL Privileges모든 권한을 준다

quit

  • firewall-cmd --permanent --add-service=mysql : 다른 서버에서 접속하기 위해, 방화벽을 열어준다.
  • firewall-cmd --reload

클라이언트

  • mysql -h 172.31.0.101 -u wpuser -p : 접속이 안된다.
    - 이것은 mysql이 설치되어있지 않기 때문이다
    • 똑같이 mariaDB를 repo를 만들어 설치 할 수 있지만 우리는 mysql명령어만 필요하다.
    • 따라서 mysql만 yum으로 설치해본다.
  • yum install mysql -y : mysql설치
  • mysql -h 172.31.0.101 -u wpuser -p : 다시 접속해본다.
    - 이 명령어에서 어느 서버에 접속할지 어떻게 아는가??
    • -h 옵션은 호스트의 서버에 접속하는 옵션이다.
  • mysql -h ns.cocudeny.shop -u wpuser -p : IP주소가 아닌 도메인 주소로 해도 된다.
    - 만약 접속이 안된다면 방화벽에 추가 했는지 확인한다.


  • 아래 모습이 접속한 화면이다.

기타

  • 윈도우 서버 (IIS) : 전세계 1위의 점유율을 가지고 있는 서버

이론

프로토콜

HTTP, FTP, SMTP 및 DNS(세션/프레젠테이션/애플리케이션 계층

  • 여러 프로토콜이 네트워크의 세션, 프레젠테이션 및 응용 프로그램 계층과 겹친다. 아래 나열된 프로토콜은 잘 알려진 몇 가지이다.
  • DNS - 도메인 이름 시스템 - 네트워크 주소를 사람이 이해할 수 있는 용어로 변환, 또는 그 반대로 변환한다.
  • DHCP = 동적 호스트 구성 프로토콜 - 컴퓨터의 IP를 자동으로 부여하는 프로토콜

데이터베이스

  • 대용량의 데이터 집합을 체계적으로 구성해 놓은 것
  • 혼자가 아닌 여러명의 사용자나 시스템이 서로 공유할 수 있어야한다.
  • 데이터베이스 관리 시스템 (DBMS : Datavase Management System)은 이러한 데이터베이스를 관리해 주는 시스템 또는 소프트웨어이다.
  • 데이터베이스는 '데이터의 저장공간' 자체를 의미하기도 한다.
  • DB서버는 테이블 관련 정보만 존재하고,
  • Web서버에 웹 관련 정보가 들어가있다, 착각하기 쉬운 부분이다.

데이터베이스 또는 DBMS특징

보안

  • 아무나 접근하는 것이 아닌 허가된 사람만 접근할 수 있어야한다.

데이터 중복의 최소화

  • 동일한 데이터가 중복으로 저장되는 것을 방지해야한다.
  • 데이터베이스에 통합하면 하나의 테이블에 저장하고 이를 공유함으로 중복을 방지할 수 있다.

응용프로그램 제작 및 수정 용이

  • 통일된 방식으로 응용프로그램 작성이 가능해지고, 유지보수가 쉬워진다.

Hierarchical databases

  • 계층적 데이터베이스 모델
  • root -> lv1 -> lv2 ..... 로 트리구조로 만들어져있는 모습
  • 현재의 폴더 시스템 같은 모습이다.

Network database

Relational Database

  • 데이터베이스를 저장하는데, 테이블(표)을 사용한다.


    데이터베이스 용어
  • 열(column) : 세로, 각 테이블은 열로 구성되고, 속성을 표현한다.
  • 열 이름 : 각 열을 구분하기 위한 이름이며, 테이블 내에서 고유해야한다.
  • 행 : 가로, 각 열의 정보를 가지고 있는 실질적인 데이터, 각 행의 데이터와 열은 관계(Relation)을 맺고 있다.
  • 테이블 : 열과 행으로 표형대로 표현한 데이터가 담긴 것을 말한다.
  • 데이터베이스 : 테이블이 저장되는 저장소를 말한다.
  • DBMS : 데이터베이스를 관리하는 시스템 또는 소프트웨어를 말한다.
  • 데이터형식 : 문자 형식, 숫자 형식이며, 테이블을 생성할 때 지정해야 한다.
  • 기본 키(Primary Key, PK) : 각 행을 구분하는 유일한 열(속성)을 말하며, 식별자로 이용된다. 구분할 수 있기위해 중복이 없을 수 있고, 있을 수 있다.
  • 외래 키(Foreign Key, FK) : 두 테이블의 관계를 맺어주는 키를 말한다.

SQL

SQL개요

  • SQL(= Query, Structured query Language, '에스큐엘', '시퀄')은 구조적 쿼리 언어를 나타낸다. SQL은 데이터베이스와 통신하는 데 사용됩니다.
  • ANSI(American National Standards Institude)에 따르면 관계형 데이터베이스 관리 시스템의 표준 언어이다.
    - 관계형 데이터베이스가 아닌 것은 NoSQL (Key <-> Value)이라 한다.
  • SQL문은 데이터베이스에서 데이터 업데이트 (수정) 또는 데이터베이스에서 데이터 검색과 같은 작업을 수행하는데 사용된다.
  • SQL을 사용하는 일반적인 관계형 데이터베이스 관리 시스템은 Oracle, Sybase, Microsoft SQL Server, Access, ingres, MySQL, PostgreSQL, MariaDB 등이 있다.
  • 대부분의 데이터베이스 시스템이 SQL을 사용하지만 대부분은 일반적으로 시스템에서만 사용되는 고유한 추가 독점 확장을 가지고 있다. (Oracle, MS-SQL)
  • 그러나 "Select", "insert", "Delete", "Create""Drop"같은 표준 SQL 명령을 사용하여 데이터베이스로 수행하는 데 필요한 거의 모든 작업을 수행할 수 있습니다.

DBMS

  • User가 SQL명령어를 통해 DBMS에게 명령을 내리면 DBMS에서 DB를 컨트롤하며 명령을 처리한다.

실습

Maria DB

Maria DB 다운로드

  • MariaDB설치 파일을 웹사이트에서 다운로드 해서 실행파일을 실행한다.
  • Next -> Accept -> next -> next (HeidiSQL : SQL GUI관련 tool)
  • PW입력, root 사용자의 remote접근 허용 (실습용으로 허락한다.)
    - UTF8을 기본 문자 셋으로 사용한다. 체크
  • MYSQL은 3306Port를 사용한다.
  • 이후 체크하지 않고, next -> install

Maria DB 사용

  • 신규버튼을 눌러 새로운 Session을 만들어준다.
  • 세션이름을 localhost로 하고 password에 root의 password를 입력해준다.
  • 열기를 눌러 새로운 세션을 열어본다.
  • PowerWindow에 들어가,
    - SETX PATH "C:\Program Files\MariaDB 10.3\bin;%PATH%" /M : 입력해서 성공 : 지정한 값을 저장했습니다. 가 나오면 성공이다.

  • 강사님이 나눠주신 employees.zip파일로 실습을 진행.
  • 내컴퓨터(C드라이브)에 바로 employees를 압축해제 해준다.
  • cd C:\employees\: 로 현재 작업위치 이동
  • mysql -u root -p : 로 MYSQL에 접속한다.
  • source employees.sql : mysql에 데이터를 읽어온다.
  • show databases : 로 읽음을 확인한다.

데이터베이스 구축 절차

  • DBMS 설치
  • 데이터베이스 구축 절차
    - 데이터베이스 생성
    - 테이블 생성
    - 데이터 입력
    - 데이터 조회/활용

테이블 생성

  • localhost에서 오른쪽마우스 클릭(GUI) -> 데이터베이스 만들기
    - 이름을 생성해준다. (어떻게 저장해도, 결국 저장은 소문자로 저장된다.)
    • CREATE DATABASE shopDB : shopDB 양쪽에 백틱이 들어가야한다.
  • shopdb 오른쪽마우스 클릭 -> 새로생성 -> 테이블
    - 테이블 이름 : member TBL (TBL == Table)
    - 테이블 컬럼(열, cul)정의
    - 아이디(Primary Key) : memberID | 문자(CHAR) | 8글자(영문) | NULL허용 X
    - 회원 이름 : memberName | 문자(CHAR) | 5글자(한글) | NULL허용 X
    - 주소 : memberAddress | 문자(CHAR) | 20글자(한글) | NULL허용 O

  • 두번째 테이블 생성
    - 테이블 이름 : productTBL (TBL == Table)
    • 테이블 컬럼(열, cul)정의
      • 제품이름(Primary Key) : productName | 문자(CHAR) | 4글자(한글) | NULL허용 X
        • 가격 : cost | 숫자(INT) | 정수 | NULL허용 X
        • 제조일자 : makeDate | 날짜(DATE) | 날짜형 | NULL허용 O
        • 제조회사 : company | 문자(CHAR) | 5글자(한글) | NULL허용 O
        • 남은수량 : amount | 숫자(INT) | 정수 | NULL허용 X
  • 기본기(Primary Key)를 설정하려면 테이블 정의 탭에서 열의 오른쪽 마우스 클릭 -> 새 인덱스 생성 -> Primary Key로 저장

데이터 입력

  • 테이블 탭 오른쪽 데이터탭을 클릭하고, 아래 테이블 빈공간에 오른쪽마우스 클릭, 행삽입
회원 데이터 ( 아이디 / 이름 / 주소 )
Dang / 당탕이 / 경기 부천시 중동
Jee  / 지운이 / 서울 은평구 중산동
Han  / 한주연 / 인천 남구 주안동
Sang / 상길이 / 경기 성남시 분당구

제품데이터(제품명 / 비용 / 날짜 / 제조사 / 수량)
냉장고 / 5  / 2023-02-01 / 대우 / 22
세탁기 / 20 / 2022-09-01 / LG   / 3
컴퓨터 / 10 / 2021-01-01 / 삼성 / 17
  • SQL사용해보기
  • SELECT * FROM membertbl : membertbl에서 *(모든) 열을 SELECT해서 검색하라.
  • powershell에서도 검색 가능하다.
    - use shopdb : shopdb사용
    • SELECT * FROM membertbl;

데이터 활용

  • SELECT : FROM에서 정의된 테이블에서 검색할 열(속성)을 정의
  • FROM : 작업할 Table을 정의한다. (위 이미지가 SELECT와 FROM의 예시이다.)
  • WHERE : 표시할 데이터의 조건을 정의한다.


  • 회원의 모든 정보 조회
    - select * from memberTbl;
  • 이름과 주소만 조회
    - select memberName, memberAddress from memberTbl;
  • 특정 이름만 검색
    - select * from memberTbl where memberName = '치킨';
  • 테이블 생성
    - create table my testTBL(id int); : 블럭모양에 백틱(~ - shift)가 들어가는 것이다.
    • select * from my testTBL; 테이블이름 양쪽에 백틱이 들어간다.
  • 테이블 삭제
    - drop table my testTBL;

데이터베이스 개체 활용

인덱스 (Index) : 대부분의 책의 제일 뒤에 붙어 있는 '찾아보기'와 같은 개념

CREATE TABLE indexTBL (first_name (varchar(14), last_name varchar(16), hire_date date); #테이블 생성 (이름, 성, 고용일)
	INSERT INTO indexTBL 	#indexTBL에 아래에서 찾은 데이터를 indexTBL에 넣겠다. 총 500개가 들어갈 것이다.
	SELECT first_name, last_name, hire_date date 	#(전체 열을 포함하니 *을 써도 될 것이다.)
    FROM employees.employees
    LIMIT 500; 		#최대 500줄까지만 표시하겠다.

SELECT * FROM indexTBL; #나는 두번눌러서 1000개가 들어왔다.

SELECT * FROM indexTBL WHERE first_name = 'Mary'; 	#검색하면 나는 중복이라 Mary가 두명나온다.

EXPLAIN SELECT * FROM indexTBL WHERE first_name = 'Mary';
#Mary를 찾을 떄 어떻게 찾았나? : type = All 을 보면 모든 행을 뒤져서 찾았다. 

CREATE INDEX idx_indexTBL_firstname ON indexTBL(first_name);	#indexTBL에서 (first_name)을 이용하여 idc_indexTBL_firstname 인덱스를 만든다. 

EXPLAIN SELECT * FROM indexTBL WHERE first_name = 'Mary';
#인덱스 생성 전과 다르게, type에 ref(참조)로 되어있다. 즉, 인덱스를 참조하여 빠르게 찾은 것이다.
# 눈에 띄게 보이는 차이는 아니였지만 데이터가 더욱 많을 때, 눈에 띄는 차이가 될 것이다.

뷰(View) : 가상 테이블, 진짜 테이블에 링크된 개념

  • 보안상의 이유 등 여러 이유로, 실제 테이블에서 부분을 떼어 가상 테이블을 만드는 것이다.
CREATE VIEW uv_memberTBL 	#뷰 생성
AS #아래 조건에서 출력으로 나오는 뷰를 생성하겠다.
		SELECT memberName, memberAddress FROM memberTBL;

SELECT * FROM uv_memberTBL;
#생성된 뷰를 살표본다.

스토어드 프로시져 (Stored Procedure): SQL문을 하나로 묶어서 편리하게 사용하는 프로그래밍 기능

  • 여러 명령어를 하나로 묶어서 한번에 사용하게 해주는 기능
  • 여러 명령어를 같은타이밍에 계속 사용해야한다면 미리 정의해서 간편하게 사용할 수 있다.
  • 마치 코딩할 떄 함수와 같다.
SELECT * FROM memberTBL WHERE memberName = '앤제리';
SELECT * FROM productTBL WHERE productName = '몰왕검';

DELIMITER //	## 구분자, 구분시작
CREATE PROCEDURE myProx()	#myProx이름으로 프로시져를 생성한다.
BEGIN	 #프로시져 시작
		SELECT * FROM memberTBL WHERE memberName = '앤제리';
		SELECT * FROM productTBL WHERE productName = '몰왕검';		#프로시져 끝
END //
DELIMITER ;

CALL myProc() ;

트리거(Trigger) : 테이블에 부착되어서, 테이블에 INSERT나 UPDATE 또는 DELETE작업이 발생되면 실행되는 코드

  • 어떤 작업에 의해, 일련 작업이 유발되어 실행되는 코드
  • 아래는 삽입 -> 출력 -> 업데이트 => 출럭 =>삭제 -> 출력하는 코드이다.
# 데이터 입력 및 테이블 출력
INSERT INTO memberTBL VALUES ('Figure', '연아', '경기도 군포시 당정동');

SELECT * FROM membertbl;

UPDATE memberTBL SET memberAddress = '서울 강남구 역삼동' WHERE memberName = '연아';

SELECT * FROM membertbl;

DELETE FROM memberTBL WHERE memberName = '연아';

SELECT * FROM membertbl;

  • 백업 테이블 생성
CREATE TABLE deletedMemberTBL (
		memberID char(8),
        memberName char(5),
        memberAddress char(20),
        deletedDate date #삭제한 날짜
);
  • 트리거 정의
DELIMITER // #구분자
CREATE TRIGGER trg_deletedMemberTBL #트리거 이름, #트리거 조건 설정
		AFTER DELETE 	#삭제 후에 작동하게 지정
        ON memberTBL 	#트리거를 부착할 테이블
        FOR EACH ROW 	#각 행마다 적용시킴
BEGIN
		# OLD 테이블의 내용을 백업테이블에 삽입
        # 트리거 실행시 할 일 정의
        INSERT INTO deletedMemberTBL
        		VALUES (OLD.memberID, OLD.memberName, OLD.memberAddress, CURDATE() ); #CURDATE: 현재 날짜.
END //
DELIMITER ;
  • 트리거 작동 확인해보기
SELECT * FROM memberTBL;

DELETE FROM memberTBL WHERE memberName = '앤제리';

SLELCT * FROM memberTBL;

SELECT * FROM deletedMemberTBL;

  • deletedmembertbl에 제대로 들어온 것을 볼 수 있다.
    - 만약 잘못 삭제한 계정을 다시 살리기 목적으로 사용할 수 있다.

    		INSERT INTO memberTBL 
    		SELECT memberID, memberName, memberAddress
    		FROM deletedMemberTBL;
    
    		SELECT * FROM memberTBL;

데이터베이스 백업 및 관리(DBA : DataBase Administrator)

  • 백업과 복원 : 데이터베이스를 다른 매체에 보관과 문제 발생 시 원상태로 돌려놓는 작업
  • 작업할 데이터베이스에 오른쪽 마우스 클릭 -> 유지보수 -> SQL내보내기로 백업파일을 만들 수 있다.
  • productTBL 삭제
DELETE FROM productTBL;
  • 는 데이터가 사라졌다.

  • 메뉴바에 파일 -> SQL불러오기 -> 아까 저장한 SQL파일 가져오기

VM에서 Heidi로 접근하기

  • 3306번으로 포트포워딩을 진행해야 한다.
  • firewall-cmd --permanent --zone=external --add-forward-port=port=3306:proto=tcp:toport=3306:toaddr=DATABASE IP
profile
Talking Potato

0개의 댓글