- SQL File 실행
- Database Backup / Restore
- Table Restore / Restore
- Exercises
SQL File 실행하기:
비주얼 스튜디오를 이용하여 sql파일을 하나 만들어주었고,
비주얼 스튜디오 터미널에서 접근하려 했는데 ㅠ powershell에서 작동이 안돼
-> 실행 구문 앞에 .\ 붙이니까 해결됨 .\mysql -u root 이런식으루
접속하지 않고 터미널에서 바로 실행하는 방법이다.
mysql -u root -p 접속db < sql파일명
'<'를 활용한다.
SQL File로 데이터베이스를 백업할 수 있다.
# 특정 db 백업
% mysqldump -u username -p dbname > backup.sql
# 모든 db 백업
% mysqldump -u username -p --all-databases > backup.sql
데이터베이스를 백업한 SQL file을 실행하여
그 시점으로 복구하거나 이전할 수 있다.
Sql file을 실행하는 방법과 동일하다.
백업한 sql 파일을 source로 실행
mysql> source zerobase.sql
테이블 단위로도 백업을 진행할 수 있다.
db명, table명을 명시
sql_ws % mysqldump -u username -p dbname tablename > backup.sql
Local에서 celeb 테이블을 백업하기!
sql_ws % mysqldump -u root -p zerobase celeb > celeb.sql
마찬가지로 table을 백업한 sql file을 실행하여
해당 테이블을 복구하거나 이전할 수 있다.
-d <- 데이터는 빼고, 스키마만 백업하도록 함
# 특정 table schema backup
% mysqldump -d -u username -p dbname tablename > backup.sql
# 모든 table schema backup
% mysqldump -d -u username -p dbname > backup.sql
Local db에서 snl_show 스키마 백업하기!
sql_ws % mysqldump -d -u root -p zerobase snl_show > celeb.sql
mysqldump -u root -p testdb > c:\sqldump\test.sql
결과적으로는 경로 설정을 잘못한 나의 문제였음.
testdb를 백업해주자!
zerobase.sql 파일 이름으로
만들어둔 폴더에 덤프파일 생성해주었고,
백업 받은 파일을
remote db에 보내주기!
RDS 사용가능으로 활성화하고
zerobase라는 이름으로 만든 db에 보내주었다.
source C:\Users\ekim1\Documents\SQL_WS\zerobase.sql # 백업파일 경로
이제 로컬에서 작업한 celeb 테이블만 백업해보자!
sqldump이용하여 파일 생성해주고,
AWS 서버에 만든 remote db에 접속해서 source로 가져왔다.
source C:\Users\ekim1\Documents\SQL_WS\celeb.sql
Query OK, ...뜨면서 잘 백업되었고
로컬에서 실습했던 celeb 테이블 그대로 잘 백업하여 보인다.
전체적인 과정을 복습하는 예제 문제들로,
내가 보기 쉽게 정리하고자하는 데에 의미가 이뜸..ㅎㅎ
mysqldump --set-gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -pzerobase zerobase > C:\Users\ekim1\Documents\SQL_WS\backup_zerobase.sql
mysql -h "엔드포인트" -P 3306 -u admin -pzerobase
create database zerodb default character set utf8mb4;
grant all on zerodb.* to 'zero'@'%';
use zerodb;
source C:\Users\ekim1\Documents\SQL_WS\backup_zerobase.sql
use zerobase;
source C:\Users\ekim1\Documents\SQL_WS\insert.sql
허허
-> cmd 인코딩을 UTF-8로 바꿔주면 된다고 한다.
chcp 65001
를 입력하여 변경해주고~~ 다시 실행하면~~
한글이 잘 출력되었다.
여기서 백업을 할 땐
--set-gtid-purged=OFF 옵션을 추가해야 했고,
zerobase db 안에 있는 police_station만 backup_police.sql 파일로 저장해줘
mysqldump --set-gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase police_station > C:\Users\ekim1\Documents\SQL_WS\backup_police.sql
덤프파일 잘 생성되었다.
use zerodb;
source C:\Users\ekim1\Documents\SQL_WS\insert.sql
zerodb로 이동만 하고 방금 했던 insert 파일 source로 넣어주는 작업만 똑같이 하면 된다.
방법은 어렵지 않은데
이런저런 에러가 많아 구글링의 파도를 많이 탔던 sql file 백업과 복원