1. MariaDB 설치

  • MariaDB 공식 홈페이지에 접속 후(https://mariadb.org/) 운영체제에 맞는 MariaDB를 다운로드 및 설치

Download
확인 후 Download
next
체크 후 next
경로 확인 후 next
실제로 원격으로 루트 접속하는 것은 피하는 게 좋음
기본 값으로 next

 

Install
Finish

2. 환경 변수 등록

# mariadb라는 프로그램이 home 디렉터리에 존재하지 않기때문에 path라는 환경변수에 등록을 해야지 명령어 사용 가능

윈도우 찾기 > 시스템 환경 변수 찾기 > 환경변수 클릭
시스템 변수 > Path > 편집
새로 만들기 클릭
MariaDB 설치 경로\bin 입력 >확인
확인 클릭
확인 클릭

3. 환경변수 등록 확인

cmd 창(명령 프롬프트)

# MariaDB 버전 확인
mariadb -V
mariadb --version

version 정보가 나온다면 완료!

4. 실습 환경 구축

승인 / 거절 상관 없음
샘플 데이터 다운로드 ❘ employee data 다운로드를 위해 DB Download GitHub 클릭

 

Code > Download ZIP
다운로드 완료 후 test_db-master 압축 풀기
cmd창에서 test_db-master 폴더 열기

 

#비밀번호 입력후(mariadb 다운로드시 입력했던 비밀번호)

mariadb -u root -p

MariaDB [(none)]> source employees.sql;

MariaDB [(employees)]> show databases;

데이타 베이스 목록 확인

MariaDB [employees]> show tables;

데이터베이서 table 확인

 

5. HeidiSQL : DataBase에 접속하여 손쉽게 테이블을 관리할 수 있는 GUI 툴

윈도우 > HeidiSQL
신규 클릭
정보 입력후 열기

 

5. 사용자 생성

- root 사용자는 MariaDB의 모든 작업을 할 수 있기 때문에 실습에 필요한 일반 사용자를 생성하고 생성한 일반 사용자에 적합한 권한을 부여

-- 데이터베이스를 생성
CREATE DATABASE testDB;

testDB 생성
새로고침 후 testDB 생성 확인

-- 교재 실습 테이블 및 테스트 데이터 삽입
-- 회원 테이블
CREATE TABLE userTbl ( 
    userID  	CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK)
    name    	VARCHAR(10) NOT NULL, -- 이름
    birthYear   	INT NOT NULL,  -- 출생년도
    addr	  	CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력)
    mobile1	CHAR(3), -- 휴대폰의 국번(011, 016, 017, 018, 019, 010 등)
    mobile2	CHAR(8), -- 휴대폰의 나머지 전화번호(하이픈제외)
    height    	SMALLINT,  -- 키
    mDate    	DATE  -- 회원 가입일    
);

-- 회원 구매 테이블
CREATE TABLE buyTbl (  
    num 		INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK)
    userID  	CHAR(8) NOT NULL, -- 아이디(FK)
    prodName 	CHAR(6) NOT NULL, --  물품명
    groupName 	CHAR(4)  , -- 분류
    price     	INT  NOT NULL, -- 단가
    amount    	SMALLINT  NOT NULL, -- 수량
    FOREIGN KEY (userID) REFERENCES userTbl(userID) -- 외래키 지정
);

-- 회원 데이터, 구매 데이터 삽입
INSERT INTO userTbl VALUES('LSG', N'이승기', 1987, N'서울', '011', '11111111', 182, '2008-8-8');
INSERT INTO userTbl VALUES('KBS', N'김범수', 1979, N'경남', '011', '22222222', 173, '2012-4-4');
INSERT INTO userTbl VALUES('KKH', N'김경호', 1971, N'전남', '019', '33333333', 177, '2007-7-7');
INSERT INTO userTbl VALUES('JYP', N'조용필', 1950, N'경기', '011', '44444444', 166, '2009-4-4');
INSERT INTO userTbl VALUES('SSK', N'성시경', 1979, N'서울', NULL  , NULL      , 186, '2013-12-12');
INSERT INTO userTbl VALUES('LJB', N'임재범', 1963, N'서울', '016', '66666666', 182, '2009-9-9');
INSERT INTO userTbl VALUES('YJS', N'윤종신', 1969, N'경남', NULL  , NULL      , 170, '2005-5-5');
INSERT INTO userTbl VALUES('EJW', N'은지원', 1972, N'경북', '011', '88888888', 174, '2014-3-3');
INSERT INTO userTbl VALUES('JKW', N'조관우', 1965, N'경기', '018', '99999999', 172, '2010-10-10');
INSERT INTO userTbl VALUES('BBK', N'바비킴', 1973, N'서울', '010', '00000000', 176, '2013-5-5');
INSERT INTO buyTbl VALUES(NULL, 'KBS', N'운동화', NULL   , 30,   2);
INSERT INTO buyTbl VALUES(NULL, 'KBS', N'노트북', N'전자', 1000, 1);
INSERT INTO buyTbl VALUES(NULL, 'JYP', N'모니터', N'전자', 200,  1);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'모니터', N'전자', 200,  5);
INSERT INTO buyTbl VALUES(NULL, 'KBS', N'청바지', N'의류', 50,   3);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'메모리', N'전자', 80,  10);
INSERT INTO buyTbl VALUES(NULL, 'SSK', N'책'    , N'서적', 15,   5);
INSERT INTO buyTbl VALUES(NULL, 'EJW', N'책'    , N'서적', 15,   2);
INSERT INTO buyTbl VALUES(NULL, 'EJW', N'청바지', N'의류', 50,   1);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'운동화', NULL   , 30,   2);
INSERT INTO buyTbl VALUES(NULL, 'EJW', N'책'    , N'서적', 15,   1);
INSERT INTO buyTbl VALUES(NULL, 'BBK', N'운동화', NULL   , 30,   2);

SELECT * FROM userTbl;
SELECT * FROM buyTbl;

-- 실습 테이블 및 데이터 삽입
DROP TABLE IF EXISTS employee;
DROP TABLE IF EXISTS department;
DROP TABLE IF EXISTS job;

--  DDL for Table DEPARTMENT
CREATE TABLE department (	
    dept_id CHAR(2) PRIMARY KEY, 
    dept_title VARCHAR(35) NOT NULL
);

INSERT INTO department(dept_id,dept_title) VALUES ('D1','인사관리부');
INSERT INTO department(dept_id,dept_title) VALUES ('D2','회계관리부');
INSERT INTO department(dept_id,dept_title) VALUES ('D3','마케팅부');
INSERT INTO department(dept_id,dept_title) VALUES ('D4','국내영업부');
INSERT INTO department(dept_id,dept_title) VALUES ('D5','해외영업1부');
INSERT INTO department(dept_id,dept_title) VALUES ('D6','해외영업2부');
INSERT INTO department(dept_id,dept_title) VALUES ('D7','해외영업3부');
INSERT INTO department(dept_id,dept_title) VALUES ('D8','기술지원부');
INSERT INTO department(dept_id,dept_title) VALUES ('D9','총무부');

--  DDL for Table JOB
CREATE TABLE job (	
    job_code CHAR(2) PRIMARY KEY, 
	job_name VARCHAR(35) NOT NULL
);

INSERT INTO job(job_code,job_name) VALUES ('J1','대표');
INSERT INTO job(job_code,job_name) VALUES ('J2','부사장');
INSERT INTO job(job_code,job_name) VALUES ('J3','부장');
INSERT INTO job(job_code,job_name) VALUES ('J4','차장');
INSERT INTO job(job_code,job_name) VALUES ('J5','과장');
INSERT INTO job(job_code,job_name) VALUES ('J6','대리');
INSERT INTO job(job_code,job_name) VALUES ('J7','사원');


--  DDL for Table EMPLOYEE
CREATE TABLE employee (	
    emp_id CHAR(3) PRIMARY KEY, 
	emp_name VARCHAR(20) NOT NULL, 
	emp_no CHAR(14) NOT NULL, 
	email VARCHAR(25), 
	phone VARCHAR(12), 
	dept_code CHAR(2), 
	job_code CHAR(2), 
	salary INT, 
	bonus DOUBLE, 
	manager_id VARCHAR(3), 
	hire_date DATE, 
	ent_date DATE, 
	ent_yn CHAR(1) DEFAULT 'N'
) ;

INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('200','선동일','621235-1985634','sun_di@kh.or.kr','01099546325','D9','J1',8000000,0.3,null,'90/02/06',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('201','송종기','631156-1548654','song_jk@kh.or.kr','01045686656','D9','J2',6000000,null,'200','01/09/01',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('202','노옹철','861015-1356452','no_hc@kh.or.kr','01066656263','D9','J2',3700000,null,'201','01/01/01',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('203','송은희','631010-2653546','song_eh@kh.or.kr','01077607879','D6','J4',2800000,null,'204','96/05/03',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('204','유재식','660508-1342154','yoo_js@kh.or.kr','01099999129','D6','J3',3400000,0.2,'200','00/12/29',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('205','정중하','770102-1357951','jung_jh@kh.or.kr','01036654875','D6','J3',3900000,null,'204','99/09/09',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('206','박나라','630709-2054321','pack_nr@kh.or.kr','01096935222','D5','J7',1800000,null,'207','08/04/02',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('207','하이유','690402-2040612','ha_iy@kh.or.kr','01036654488','D5','J5',2200000,0.1,'200','94/07/07',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('208','김해술','870927-1313564','kim_hs@kh.or.kr','01078634444','D5','J5',2500000,null,'207','04/04/30',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('209','심봉선','750206-1325546','sim_bs@kh.or.kr','0113654485','D5','J3',3500000,0.15,'207','11/11/11',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('210','윤은해','650505-2356985','youn_eh@kh.or.kr','0179964233','D5','J7',2000000,null,'207','01/02/03',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('211','전형돈','830807-1121321','jun_hd@kh.or.kr','01044432222','D8','J6',2000000,null,'200','12/12/12',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('212','장쯔위','780923-2234542','jang_zw@kh.or.kr','01066682224','D8','J6',2550000,0.25,'211','15/06/17',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('213','하동운','621111-1785463','ha_dh@kh.or.kr','01158456632',null,'J6',2320000,0.1,null,'99/12/31',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('214','방명수','856795-1313513','bang_ms@kh.or.kr','01074127545','D1','J7',1380000,null,'200','10/04/04',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('215','대북혼','881130-1050911','dae_bh@kh.or.kr','01088808584','D5','J5',3760000,null,null,'17/06/19',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('216','차태연','770808-1364897','cha_ty@kh.or.kr','01064643212','D1','J6',2780000,0.2,'214','13/03/01',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('217','전지연','770808-2665412','jun_jy@kh.or.kr','01033624442','D1','J6',3660000,0.3,'214','07/03/20',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('218','이오리','870427-2232123','loo_or@kh.or.kr','01022306545',null,'J7',2890000,null,null,'16/11/28',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('219','임시환','660712-1212123','im_sw@kh.or.kr',null,'D2','J4',1550000,null,null,'99/09/09',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('220','이중석','770823-1113111','lee_js@kh.or.kr',null,'D2','J4',2490000,null,null,'14/09/18',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('221','유하진','800808-1123341','yoo_hj@kh.or.kr',null,'D2','J4',2480000,null,null,'94/01/20',null,'N');
INSERT INTO employee(emp_id,emp_name,emp_no,email,phone,dept_code,job_code,salary,bonus,manager_id,hire_date,ent_date,ent_yn) VALUES ('222','이태림','760918-2854697','lee_tr@kh.or.kr','01033000002','D8','J6',2436240,0.35,'100','97/09/12','17/09/12','Y');

COMMIT;

새로고침 후 테이블 확인

 

-- 사용자 생성

# %는 모든 곳에서 접속이 가능하다는 옵션
# %에 IP를 지정해주면 지정된 IP만 접속이 가능함
# IDENTIFIED BY 뒤에는 계정 비밀번호

CREATE USER `beyond`@`%` IDENTIFIED BY 'beyond';

 

사용자 생성

-- 사용자 확인
# mysql.user라는 뷰를 조회
SELECT Host, User, Password FROM mysql.user;

 

7번에 계정이 생성된 것을 확인 할 수 있음

-- beyond 사용자에 employees 데이터베이스에 대해 모든 권한을 부여
GRANT ALL PRIVILEGES ON employees.* TO `beyond`@`%`;

-- beyond 사용자에 testDB 데이터베이스에 대해 모든 권한을 부여
GRANT ALL PRIVILEGES ON testDB.* TO `beyond`@`%`;

 

 

-- 권한 확인
SHOW GRANTS FOR `beyond`@`%`;

권환 확인

-- 권한 적용
FLUSH PRIVILEGES;

권한 적용

 

5. 생성한 계정으로 로그인

파일 > 세션 관리자 ❘ 사용자명, 암호, 접근 가능한 데이터베이스 선택

 

설정 후 저장 후 열기

'Database' 카테고리의 다른 글

[Database] 데이터 형식(Data Type) & 함수(2)  (0) 2024.05.20
[Database] 데이터 형식(Data Type) & 함수 (1)  (0) 2024.05.17
[Database] SQL 기본 (2)  (0) 2024.05.17
[Database] SQL 기본 (1)  (0) 2024.05.16
[Database] MariaDB  (0) 2024.05.16

1. home 디렉터리 확인

pwd

home 디렉터리 beyond는 계정 이름

 

2. ssh-key 발급

#ssh-keygen - opnssh의 명령어
ssh-keygen -t rsa

명령어 입력후 enter 반복하면 키가 생성

 

3. 발급 확인

# -a옵션은 숨겨진 파일을 모두 보여줌
ls -a

.ssh 생성 확인

# id_rsa : 비공개키, 윈도우로 이동해주어야함
# id_rsa.pub : 공개키, 서버에 있어야함
cd .ssh
ls

id_rsa, id_rsa.pub 키 발급 확인

 

4. 공개키 이름 변경

# 변경 필수 ! key를 사용하기 위한 규칙
mv id_rsa.pub authorized_keys

mv 명령어로 id_rsa.pub키 이름 변경

 

 

5. 비공개키 윈도우로 이동

id_rsa키를 윈도우로 이동

- .ssh로 이동

- id_rsa를 윈도우에 다운로드

 

선택 위치에 다운로드 되었는지 윈도우에서 확인

- 윈도우에 다운로드 되었는지 확인

 

6. 세션 만들기

Use private key 선택하고 id_rsa 파일 입력
id_rsa파일 선택
ok버튼 누르면 ssh인증키 설정 완료!

1. Oracle VM VirtualBox 설치

windows host로 설치
모두 기본값으로 install 후 Finish

 

2. 가상 시스템 가져오기

도구 > 우클릭 > 가상시트템 가져오기
파일 이코티콘 선택
파일 > 가상머신 가져오기
완료 클릭

 

가상 시스템 가져오기가 완료되면 성공!

 

3. 가상 머신 전원 켜기

우클릭 > 시작
시작 클릭
가상 머신 전원 켜는 중-
비밀번호 입력
터미널 열린것 확인하면 성공!

 

3. MobaXterm 설치

GET MOBAXTERM NOW! 클릭
Home Edition 버전으로 Download now 클릭
MobaXterm Home Edition v24.1(Installer edition) download
기본값으로 install

 

start local terminal

4. 가상머신 원격접속

# 가상 머신 터미널
# 네트워크 툴인 net-tools 설치
sudo apt install net-tools

sudo apt install net-tools

# 네트워크 인터페이스에 주소를 지정하고 현재 네트워크 인터페이스 구성 정보를 구성 또는 표시
ifconfig

게스트 IP 확인

#openssh-server 다운로드
#openssh-server는 원격접속할때 허용하게 해주는 서버
sudo apt install openssh-server

openssh-server install

 

#systemctl로 실행되는 서비스 리스트를 확인
sudo systemctl list-units | grep ssh

# MobaXterm local terminal
inconfig

 

ipconfig 명령어를 통해 window ip 확인 (pc마다 할당된 ip이기 때문에 중복되지 않음)

 

Session 클릭
SSH 클릭
가상머신 > 우클릭 > 설정
설정 > 네트워크
네트워크 > 고급 > 포트 포워딩 ❘ 호스트 IP, 호스트 포트, 게스트 IP, 게스트포트 입력
완료!

'Linux' 카테고리의 다른 글

[Linux] Vim / 텍스트 처리  (0) 2024.05.17
[Linux] 파일/디렉터리 조작  (0) 2024.05.17
[Linux] 파일/디렉터리  (0) 2024.05.17
[Linux] 리눅스(Linux)/ 셸(Shell)  (0) 2024.05.17
[Linux] ssh 인증키 설정  (0) 2024.05.14

+ Recent posts