SQL - AWS RDS

허재정·2024년 3월 19일

SQL

목록 보기
6/7

1. AWS RDS

  • 	- Amazon Relational Database Service는 AWS에서 제공하는 관계형 데이터베이스 서비스
    <사용방법>
    (1) AWS RDS에 생성한 DB 'database-1'에 접속
    mysql -h <엔드포인트> -P <포트> -u<마스터 사용자> -p<패스워드>
    (2) DB(zerobase) 생성
      ```
    		CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4  #이모지 사용가능
      SHOW DATABASES;
    		```
    (3) 사용자 (zero) 추가하고 확인 (사용자 추가)
       CREATE USER 'zero'@'%' IDENTIFIED BY 'zerobase';
       # 사용자 삭제를 하고 싶으면
       # DROP USER 'zero'@'%';
       
       USE (사용하고자 하는 database);
       SELECT host, user FROM user;
    			```
    - 
    (4) 사용자 (zero)에게 외부에서 접근해 zerobase 데이터 베이스 사용할 수 있는 권한 부여하고 접근
    	GRANT ALL ON zerobase.* TO 'zero'@'%';
    REVOKE ALL ON zerobase.* FROM 'zero'@'%';

    권한 확인

    SHOW GRANTS FOR 'zero'@'%';
    	```
    (5) 현재 접속 종료하고 AWS RDS를 통해 zerobase Database에 접근하고자 하는 경우
    		exit
    mysql - h <엔드포인트> -P<포트> -u zero -pzerobase
    		```

2. SQL FILE

  • (1) SQL 파일 생성
    Visual Studio 의 sql_ws폴더에서 새 파일 만듦 (test01.sql)
    그 안에 police_station 만듬

      ```
    		CREATE TABLE police_station
      (
      	name VARCHAR(16),
          address VARCHAR(128)
      );
    		```

    (2) SQL 파일 실행
    - MySQL내서 실행
    - MySQL에 로그인 상태에서 SQL 파일 실행
    - source : SQL 파일 실행하는 명령어 대신 . 사용 가능

    				```
    				 mysql> source /path/file_name.sql
          	또는
          	mysql> \. /path/file_name.sql
    				```
          - SQL 파일이 있는 현재 폴더에서 로그인 했다면 path는 생략
         ```
    			# sql file이 있는 현재 폴더에서 MySQL에 로그인함과 동시에 DB에 바로 접근

    C:\Documents\sql_ws % mysql -uroot -p* db_name

    sql file 실행

    mysql> source file_name.sql

    			``` 
    	- MySQL밖에서 실행
      	- MySQL에 로그인 하지 않은 상태로 외부에서 SQL파일을 바로 실행
          ```
    			DB_name < /path/file_name.sql에서 < 파일을 DB로 갸져오도록 
          >mysql -u user_name -p password DB_name < /path/file_name.sql
    			```

    3. BACKUP SQL FILE

    • 데이터베이스나 데이터베이스 내 테이블을 SQL파일로 만들어 사용가능
      (1) 백업파일 생성
      - mysqldump 명령어 : 명령으를 사용하는 현재 폴더에 백업파일 생성

        ```
      		DB_name > backup_file.sql에서 >은 데이터베이스의 데이터를 파일로 내보냄
      
      		# 특정 DB의 백업 파일 생성

      mysqldump -u user_name -p DB_name > backup_file.sql

      		# 모든 DB의 백업 파일 생성

      mysqldump -u user_name -p --all-databases > backup_file.sql

      		```

    4. DATABASE 복구

    • DB 백업한 SQL 실행하여 백업한 그 시점에서 복구

    5. DATABASE 이전

    • DB 백업한 SQL 파일 활용해 다른 DB로 이전 가능

    • 로컬 아닌 외부 데이터베이스인 AWS RDS로 이전 가능

      	```
      		mysql -h(host) <엔드포인트> -P(Port) <포트> -u <마스터> -p<password>
      		```
    • zerobase DB 백업 파일을 AWS RDS (database-1)로 이전 후 접속

      	```
      		 C:\Documents\sql_ws>mysql -h database-1.us-east-2.rds.amazonaws.com

      -P 3306 -u admin -p
      mysql> CREATE DATABASE zerobase DEFAULT CHARACTER SET utf8mb4;
      mysql> USE zerobase;
      mysql> source backup_DB_zerobase.sql

      		```

      6. 테이블 BACKUP

    • Table을 SQL 파일로 만들 때도 mysqldump 명령어 사용 (백업파일 만들고자하는 폴더에서 명령어 실행)

      			>mysqldump -u user_name -p DB_name Table_name > backup_file.sql
    - 테이블 내 데이터를 제외하고 테이블 생성 쿼리만 백업
      - 특정 테이블 schema Backup
      	```
    			 mysqldump -d -u user_name -p db_name table_name > backup_file.sql
    			```
      - DB내 모든 테이블 schema Backup
      	```
    			 mysqldump -d -u user_name -p db_name > backup_file.sql
    			```
      ### 7. 복구 / 이전 
      - Table을 백업한 SQL 파일을 실행하여 백업한 그 시점으로 복구
      - Table을 백업한 SQL 파일을 활용해 다른 DB로 Table을 이전 가능

    삭제해도 백업한 파일로 복구

    	mysql> DROP TABLE celeb;

    mysql> . backup_TB_celeb.sql

    	```
profile
Data Science 스터디로그

0개의 댓글