▷ 오늘 학습 계획: SQL 강의(심화1~2)
Amazon Relational Database Service
AWS 에서 제공하는 관계형 데이터베이스 서비스
1) AWS 회원가입
2) MySQL RDS 생성
3) AWS RDS 외부 접속 설정
4) MySQL RDS 접속
5) AWS RDS 중지/시작
문제 풀이
AWS RDS (database-1) 에 접속하기(터미널)
mysql -h "엔드포인트" -P 3306 -u admin -p
Database (zerobase) 생성하고 확인하기
(DEFAULT CHARACTER SET utf8mb4)
CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4; show databases;
사용자(zero) 추가하고 확인하기
use mysql; CREATE USER 'zero'@'%' identified by 'zerobase'; show tables; #user라는 table이 있음 select host, user from user; DROP USER 'zero'@'%'; #user 삭제
사용자(zero)에게 외부에서 zerobase 에 접근해서 사용하기 위한 권한 부여
GRANT ALL ON zerobase.* TO 'zero'@'%'; REVOKE ALL ON zerobase.* FROM 'zero'@'%'; #권한 삭제 SHOW GRANTS FOR 'zero'@'%';
현재 접속을 종료하고 AWS RDS (database-1)의 zerobase 에 zero 로 접속
mysql -h "엔드포인트" -P 3306 -u zero -p zerobase
SQL 쿼리를 모아놓은 파일
Workspace 생성(sql_ws 폴더 만들기)
cd documents mkdir sql_ws cd sql_ws code .
로그인 이후
# sql_ws 폴더 위치로 이동하여 zerobase 에 접속 cd sql_ws mysql -u root -p zerobase #sql 파일 실행 source test01.sql desc police_station;
외부에서 바로 실행
# zerobase Database 에 접속하면서 SQL File 실행 mysql -u root -p zerobase <test02.sql desc crime_status;
SQL File 로 Database 를 백업할 수 있다.
mysqldump -u root -p zerobase > zerobase.sql
데이터베이스를 백업한 SQL File 을 실행하여 그 시점으로 복구하거나 이전 할 수 있다.
# AWS RDS (database-1) 서비스가 사용 가능한 상태에서 접속 mysql -h "엔드포인트" -P 3306 -u admin -p show databases; use zerobase; source zerobase.sql show tables;
mysqldump -u root -p zerobase celeb > celeb.sql
Table 을 백업한 SQL File 을 실행하여, 해당 테이블을 복구하거나 이전할 수 있다.
# AWS RDS (database-1) 의 zerobase 에서 celeb 테이블을 복구 mysql -h "엔드포인트" -P 3306 -u admin -p zerobase source celeb.sql show tables; desc celeb; select * from celeb;
데이터를 제외하고 테이블 생성 쿼리만 백업할 수 있다.
mysqldump -d -u root -p zerobase snl_show > snl.sql
문제 풀이
AWS RDS (database-1) 의 zerobase 데이터베이스 백업(옵션추가)
mysqldump --set_gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase > backup_zerobase.sql
AWS RDS (database-1) 에 admin 계정으로 로그인 후 Database (zerodb) 생성
(DEFAULT CHRACTER SET utf8mb4)
mysql -h "엔드포인트" -P 3306 -u admin -p use zerobase; CREATE DATABASE zerodb DEFAULT CHARACTER SET utf8mb4 show databases;
사용자(zero@%)에게 zerodb의 모든 권한 부여하기
use mysql; select host, user from user; SHOW GRANTS FOR 'zero'@'%'; GRANT ALL ON zerodb.* TO 'zero'@'%'; SHOW GRANTS FOR 'zero'@'%';
앞서 백업한 zerobase 백업 파일을 zerodb 에서 실행
use zerodb; source backup_zerobase.sql; show tables;
police_station 테이블에 데이터를 INSERT 하기 위한 SQL 파일 생성
VS Code에서 sql 파일 만들기
INSERT INTO tablename(column1, column2) VALUES(value1, value2);SQL 파일을 실행하여 AWS RDS (database-1) zerobase 의 police_station 테이블에 데이터를 INSERT 하고 확인하기
use zerobase; show tables; select * from police_station; #Empty set source insert.sql; select * from police_station;
AWS RDS (database-1) zerobase 의 police_station 테이블을 SQL 파일로 백업
mysqldump --set_gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase police_station > backup_police.sql
SQL 파일을 실행하여 AWS RDS (database-1) zerodb 의 police_station 테이블을 zerobase 테이블과 동일하게 만들고 확인
mysql -h "엔드포인트" -P 3306 -u admin -p show databases; use zerodb; show tables; select * from police_station; # Empty set source backup_police.sql; select * from police_station;
▷ 내일 학습 계획: SQL 강의(심화3~5)