sql_ws 폴더를 만들고 그 하위에서 실습하기로 하자.
cd Documents # Documents 이동
mkdir sql_ws # 디렉토리 생성
cd sql_ws # sql_ws 이동
code . # 해당 위치에서 vs 코드 열기
CREATE TABLE police_Station
(
name varchar(16),
address varchar(128)
);
source Filename.sql
show tables;
DESC police_station;
mysql -u root -p zerobase < test02.sql
로그인 후 확인
mysqldump -u root -p zerobase > zerobase.sql
SQL File 로 Database 를 백업할 수 있다.
mysql -h "엔드포인트" -P 3306 -u admin -p # 외부 데이터베이스 로그인
source zerobase.sql;
Table 단위로도 백업할 수 있다.
1. 로컬에서 작업했던 zerobase 데이터베이스의 celeb 테이블을 celeb.sql 파일에 백업
mysqldump -u root -p zerobase celeb > celeb.sql
mysqldump -u root -p zerobase celeb --default-character-set utf8 > celeb.sql
2. AWS RDS (database-1) 서비스가 사용 가능한 상태에서 접속
mysql -h "엔드포인트" -P 3306 -u admin -p # 외부 데이터베이스 로그인
3. 복원
source celeb.sql
⚠️ERROR 발생
백업, 복원 과정에서 테이블에 한글이 있어서 그런지 한글이 깨지는 상황이 발생한 듯 했다.
ERROR:
ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'ÿþ-'.
💡해결
백업할 때 --default-character-set utf8
코드 추가
mysqldump -u root -p zerobase celeb --default-character-set utf8 > celeb.sql
source celeb.sql
4. 복원 확인
1. AWS RDS (database-1) 의 zerobase 데이터베이스를 백업하세요.
• 주의> AWS RDS database 를 백업할 경우 다음의 옵션을 추가합니다.
mysqldump --set-gtid-purged=OFF -h <"엔드포인트"> -P <portnum> -u <admin> -p<password> <database_name> > <backup_file_name.sql>
2. AWS RDS (database-1) 에 admin 계정으로 로그인한 후 Database (zerodb) 를 생성하세요.
(DEFAULT CHRACTER SET utf8mb4)
mysql -h <"엔드포인트"> -P 3306 -u admin -p
PASSWORD
create database zerodb default character set utf8mb4;
3. 앞서 생성한 사용자 (zero@%) 에게 zerodb 의 모든 권한을 부여하세요.
grant all on zerodb.* to 'zero'@'%';
show grants for 'zero'@'%';
4. 앞서 백업한 zerobase 백업 파일을 zerodb 에서 실행하세요.
source backup_zerobase.sql
5. police_station 테이블에 아래 데이터를 INSERT 하기 위한 SQL 파일을 생성하세요.
6. SQL 파일을 실행하여 AWS RDS (database-1) zerobase 의 police_station 테이블에 데이터를 INSERT 하고 확인하세요.
7. 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
8. SQL 파일을 실행하여 AWS RDS (database-1) zerodb 의 police_station 테이블을 zerobase 와 동일하게 만들고 확인하세요.
use zerodb;
source insert.sql;
"이 글은 제로베이스 데이터 취업 스쿨 강의를 듣고 작성한 내용으로 제로베이스 데이터 취업 스쿨 강의 자료 일부를 발췌한 내용이 포함되어 있습니다."