mysql -h "엔드포인트" -P 3306(포트) -u admin(username) -pPW(password)
RDS-데이터베이스-중지할 데이터베이스 선택 후 작업 버튼 클릭- 일시적으로 중지 클릭
RDS-데이터베이스-중지할 데이터베이스 선택 후 작업 버튼 클릭- 시작 클릭
miniconda에서
mkdir sql_ws
: sql_ws파일 생성
C:\Users\yujeo\Documents\sql_ws>code .
현재 위치 폴더를 vscode로 연다
mysql -u root -ppassword : p뒤에 바로 비밀번호 입력시 바로 접속됨
mysql -u root -p databasename : databasename이라는 database로 접속한다는 의미, 이후에 비밀번호를 입력하면 해당 database로 바로 접속됨
mysql -u root -p비밀번호
source /path/파일이름
source 파일이름(현재경로에 있는 파일일 경우 path 생략가능)
또는
\. /path/파일이름
mysql -u root -p databasename < 파일명
mysql -u root -p비밀번호
use databasename;
show tables;
desc tablename;
exit #연결종료
mysqldump -u username -p dbname > filename #특정 데이터베이스 백업하여 파일이름으로 저장
mysqldump -u username -p --all-databases > filename #모든 데이터베이스 백업하여 파일이름으로 저장
sql_ws 폴더에 zerobase라는 데이터베이스의 백업파일인 zerobase.sql이라는 파일이 생성
mysqldump -u username -p dbname tablename > filename #테이블을 백업하여 파일이름으로 저장
sql_ws 폴더에 celeb.sql이라는 파일명으로 zerobase라는 데이터베이스의 celeb 테이블의 백업파일이 생성
테이블을 백업한 SQL File을 실행하여 해당 테이블을 복구하거나 이전할 수 있다
데이터를 제외하고 테이블 생성 쿼리만 백업
mysqldump -d -u username -p dbname tablename > filename # 특정 Table Schema Backup
mysqldump -d -u username -p dbname > filename # 모든 Table Schema Backup
zerobase라는 데이터베이스에 snl_show라는 테이블을 snl.sql파일로 데이터는 제외하고 백업
문제1.
AWS RDS(database-1)의 zerobase 데이터베이스를 백업(AWS RDS database를 백업할 경우
--set-gtid-purged=OFF 추가)
mysqldump --set-gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -pPW zerobase > backup_zerobase.sql
문제2.
AWS RDS(database-1)에 admin계정으로 로그인
mysql -h "엔드포인트" -P 3306 -u admin -pPW
문제3.
zerodb라는 database 생성
(default character set utf8mb4)
create database zerodb defauly character set utf8mb4;
확인
문제4.
사용자(zero)에게 zerodb의 모든 권한 부여
grant all on zerodb.* to 'zero'@'%';
show grants for 'zero'@'%; 로 확인
문제5.
앞서 백업한 zerobase 백업 파일을 zerodb에서 실행
source backup_zerobase.sql
or
\. backup_zerobase.sql
확인하니 백업파일이 실행되어 zerobase의 모든 테이블이 들어가있다.
문제6.
police_station 테이블에 아래 데이터를 insert 하기 위한 SQL 파일을 생성
police_data.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');
위와 같이 작성후 저장
문제7.
SQL 파일을 실행하여
AWS RDS (database-1) zerobase의 police_station 테이블에 데이터를 insert하고 확인
데이터 파일이름을 police_data.sql로 하였음
source police_data.sql
그런데 실행을 해보니 한글이 깨져서 나온다.
직접 insert 하면 한글이 제대로 나오지만, sql file로 insert를 하니까 깨져서 나온다. 원인을 찾아보니 명령 프롬프트의 인코딩 문제라고 한다.
명령 프롬프트에서 chcp를 입력하면 활성화 코드 페이지 : 949 라고 나온다.
파일을 읽어와서 명령 프롬프트에서 깨진 인코딩으로 넣어버려서 테이블이 utf8로 인코딩 되었더라도 계속 한글이 깨져서 나온다고 한다.
명령 프롬프트에 chcp 65001를 입력하고, sql file로 insert를 하면 제대로 나온다.
문제8.
AWS RDS (database-1) zerobase의 police_station 테이블을 SQL 파일로 백업
backup_police.sql을 파일명으로 했음
mysqldump --set-gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase police_station > backup_police.sql
문제9.
SQL 파일을 실행하여 AWS RDS (database-1) zerodb의 police_station 테이블을 zerobase와 동일하게 만들고 확인
mysql -h "엔드포인트" -P 3306 -u admin -p비밀번호 zerodb #aws rds(database-1)의 admin 계정 로그인
source backup_police.sql
또는
police_station 테이블이 있다면 insert 파일을 이용해도 됨
source police_data.sql