내용 보강 예정...
# AWS RDS(database-1)에 접속
mysql -h "엔드포인트" -P 3306 -u admin -p비밀번호
# 데이터베이스 확인
show databases;
# Database(zerobase)를 생성하고 확인 (DEFAULT CHARACTER SET utf8mb4)
CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4;
# 사용자(zero)를 추가하고 확인 (현재 외부접속 중, 로컬은 %가 아닌 localhost)
CREATE USER 'zero'@'%' IDENTIFIED BY 'zerobase';
# 계정 정보 확인 (계정 정보는 mySQL DB에서 관리)
use mysql;
show tables;
select host, user from user;
flush privileges # 나타나지 않는다면 새로고침
# 참고. 계정 삭제
DROP USER 'zero'@'%';
# 사용자(zero)에게 외부에서 zerobase에 접근해서 사용하기 위한 권한 부여
# 사용자(zero)권한 확인
show grants for 'zero'@'%';
# 사용자(zero) 모든 권한 부여
grant all on zerobase.* to 'zero'@'%';
# 참고. 권한 삭제
revoke all on zerobase.* from 'zero'@'%';
SQL File : SQL 쿼리를 모아놓은 파일
- database, table을 백업하고 복구하는데 이용
Database Backup : SQL File로 Database를 백업할 수 있다.
- Terminal에서 항상 경로 위치 확인 (cd Documents, cd sql_ws)
# zerobase.sql파일로 로컬계정 root의 데이터베이스인 zerobase의 내용을 백업
mysqldump -u root -p zerobase > zerobase.sql
# AWS RDS 접속
mysql -h "AWS RDS 엔드포인트" -P 3306 -u admin -p
# zerobase 데이터베이스 사용
use zerobase;
# 현재 경로에 있는 zerobase.sql 백업
source zerobase.sql
# celeb.sql파일로 로컬계정 root의 데이터베이스인 zerobase 내 celeb 테이블을 백업
mysqldump -u root -p zerobase celeb > celeb.sql
# AWS RDS 접속, zerobase 데이터베이스 사용 한번에
mysql -h "AWS RDS 엔드포인트" -P 3306 -u admin -p비밀번호 zerobase
# 현재 경로에 있는 celeb.sql 백업
source celeb.sql
# snl.sql파일로 로컬계정 root의 데이터베이스인 zerobase 내 snl_show 테이블 생성 쿼리를 백업 (데이터 내용은 없음.)
mysqldump -d -u root -p zerobase snl_show > snl.sql
실습
# AWS RDS (database-1) 의 zerobase 데이터베이스를 백업하세요.
# AWS RDS database 를 백업할 경우 다음의 옵션을 추가합니다.
# --set-gtid-purged=OFF
mysqldump --set-gtid-purged=OFF -h "database-1.c9igwn95emuj.us-east-2.rds.amazonaws.com" -P 3306 -u admin -p비밀번호 zerobase > backup_zerobase.sql
# AWS RDS (database-1) 에 admin 계정으로 로그인하세요.
mysql -h "database-1.c9igwn95emuj.us-east-2.rds.amazonaws.com" -P 3306 -u admin -p비밀번호
# Database (zerodb) 를 생성하세요.
# (DEFAULT CHRACTER SET utf8mb4)
create database zerodb default character set utf8mb4;
# 앞서 생성한 사용자 (zero@%) 에게 zerodb 의 모든 권한을 부여하세요.
grant all on zerodb.* to 'zero'@'%';
# 앞서 백업한 zerobase 백업 파일을 zerodb 에서 실행하세요.
source backup_zerobase.sql;

# sql_ws에 insert.sql파일 생성
INSERT INTO police_station VALUES ('서울특별시경찰청', '서울시 종로구 사직로8길 31');
INSERT INTO police_station VALUES ('서울중부경찰서', '서울특별시 중구 수표로 27');
INSERT INTO police_station VALUES ('서울종로경찰서', '서울특별시 종로구 율곡로 46');
INSERT INTO police_station VALUES ('서울남대문경찰서', '서울특별시 중구 한강대로 410');
# zerobase로 이동
use zerobase;
# insert.sql 실행
source insert.sql;
mysqldump --set-gtid-purged=OFF -h "database-1.c9igwn95emuj.us-east-2.rds.amazonaws.com" -P 3306 -u admin -p비밀번호 zerobase police_station > backup_police.sql
mysql -h "database-1.c9igwn95emuj.us-east-2.rds.amazonaws.com" -P 3306 -u admin -p비밀번호
use zerodb;
source insert.sql;