
Amazon Relational Database Service는 AWS에서 제공하는 관계형 데이터베이스 서비스이다.
Cloud 상에 DB를 구축하고 사용할 수 있다.
> mysql -h <엔드포인트> -P <포트> -u <마스터사용자> -p<패스워드>
> CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4;
> SHOW DATABASES;
// 외부 접속 사용자 추가
> CREATE USER 'zero'@'%' IDENTIFIED BY 'zerobase';
// 사용자를 삭제하고 싶다면 실행
> DROP USER 'zero'@'%';
// 사용자 조회
> USE mysql;
> SELECT host, user FROM user;
> GRANT ALL ON zerobase.* TO 'zero'@'%';
> REVOKE ALL ON zerobase.* FROM 'zero'@'%';
// 권한 확인
> SHOW GRANTS FOR 'zero'@'%';

> exit
> mysql -h <엔드포인트> -P <포트> -u zero -pzerobase
VSCode의 sql_ws 폴더에서 새파일을 만들 때,
파일 확장자로 .sql을 입력하면 빈 SQL 파일을 만들 수 있다.
경찰서 정보를 테이블로 생성하는 test01.sql 파일 생성

서울특별시 관서별 5대 범죄 현황 정보를 테이블로 생성하는 test02.sql 파일 생성

MySQL에 로그인 한 상태에서 SQL 파일을 실행한다.
source : SQL 파일을 실행하는 명령어러 대신 \.을 사용할 수도 있다.
mysql> source /path/file_name.sql
-- 혹은 --
mysql> \. /path/file_name.sql
// .sql file이 있는 현재 폴더에서 MySQL에 로그인, 동시에 DB로 바로 접근
C:\Documents\sql_ws % mysql -uroot -p********* db_name
// .sql file 실행
mysql> source file_name.sql

MySQL에 로그인하지 않은 상태로 외부에서 SQL 파일을 바로 실행한다.
DB_name < /path/file_name.sql에서 <은 파일을 데이터베이스로 가져온다.
% mysql -u user_name -p password DB_name < /path/file_name.sql

데이터베이스나 데이터베이스 내 테이블을 SQL 파일로 만들어 백업할 수 있다.
DB의 데이터를 SQL 파일로 만들 때는 mysqldump 명령어를 사용한다.
mysqldump 명령어를 사용하는 현재 폴더에 백업 파일을 생성한다.DB_name > backup_file.sql에서 >은 데이터베이스의 데이터를 파일로 내보낸다.
특정 DB의 백업 파일 생성
% mysqldump -u user_name -p DB_name > backup_file.sql
% mysqldump -u user_name -p --all-databases > backup_file.sql

DB를 백업한 SQL 파일을 실행하여 백업한 그 시점으로 복구한다.
복구하는 방법은 SQL 파일을 실행하는 방법과 동일하다.
DB를 백업한 SQL 파일을 활용해 다른 DB로 이전할 수도 있다.
로컬이 아닌 외부 데이터베이스인 AWS RDS로 이전할 수 있다.
% mysql -h(host) <엔드포인트> -P(Port) <포트> -u <마스터> -p<password>
C:\Documents\sql_ws % mysql -h database-1.us-east-2.rds.amazonaws.com
-P 3306 -u admin -p
Enter password: ************
mysql> CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4;
mysql> USE zerobase;
mysql> source backup_DB_zerobase.sql
테이블 단위로도 백업할 수 있다.
Table을 SQL 파일로 만들 때도 mysqldump 명령어를 사용한다.
% mysqldump -u user_name -p DB_name Table_name > backup_file.sql
실습: Local zerobase DB에서 celeb Table을 백업

테이블 내 데이터를 제외하고 테이블 생성 쿼리만 백업할 수 있다.
-d 옵션을 추가한다. // 특정 Table Schema Backup
% mysqldump -d -u user_name -p db_name table_name > backup_file.sql
// DB 내 모든 Table Schema Backup
% mysqldump -d -u user_name -p db_name > backup_file.sql

Table을 백업한 SQL 파일을 실행하여 백업한 그 시점으로 복구한다.
복구하는 방법은 SQL 파일을 실행하는 방법과 동일하다.
Table을 백업한 SQL 파일을 활용해 다른 DB로 Table을 이전할 수도 있다.
실습: zerobase DB에 있는 celeb Table 백업 파일을 AWS RDS (database-1)로 이전
D:\Git\ElaYJ_ws\Study_SQL\sql_ws % mysql -h database-1.us-east-2.rds.amazonaws.com -P 3306 -u admin -p zerobase
Enter password: ************
mysql> DROP TABLE celeb;
mysql> \. backup_TB_celeb.sql