외부 MariaDB에서 AWS 인스턴스로 데이터 가져오기

소영·2024년 7월 22일
post-thumbnail

기존에는 동일 네트워크 환경에서 MariaDB를 공유해서 사용하였습니다. 외부 네트워크에서 작업하기위해 포트포워딩을 시도하였지만 학원 wifi를 사용하여 작업하였기 때문에 비밀번호 등 여러문제가 있었습니다. 그래서 바로 aws로 db를 옮기기로 결정하였습니다!

1. AWS RDS 생성

  • RDS로 mariadb 인스턴스를 생성합니다

2. 인스턴스에 DB 생성

  • csv_db라는 db를 생성합니다

3. 로컬 MariaDB 서버에서 AWS RDS 인스턴스로 데이터 가져오기

mysqldump -u local_user \
    --databases database_name \
    --single-transaction \
    --compress \
    --order-by-primary  \
    -plocal_password | mysql -u RDS_user \
        --port=port_number \
        --host=host_name \
        -pRDS_password
  • 실제 입력은 아래와 같이 하였습니다
    • --databases csv_db ^
      --single-transaction ^
      --order-by-primary ^
      --routines=0 ^
      --triggers=0 ^
      --events=0 ^
      --column-statistics=0 ^
      -p | mysql -u RDS_user ^
          --port=3306 ^
          --host=host_name ^
          --database=csv_db ^
          -p
    • 비밀번호를 명령어에 직접 입력하지 않고 따로 입력받았습니다
    • 명령어 실행 후 비밀번호 입력란 뜨면 로컬 비밀번호 입력 → 엔터 → aws 비밀번호 입력 → 엔터
  • 비밀번호 모두 입력 시 데이터 덤프 과정 중에는 _ 만 노출되며 반응 없음 → 완료될 때 까지 기다리기

오류 해결

오류해결

  • 오류1
    • 오류 메시지:
      mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'csv_db' AND TABLE_NAME = 'checking_thought';': Unknown table 'column_statistics' in information_schema (1109)
    • 원인: COLUMN_STATISTICS 테이블이 information_schema 에 존재하지 않아 발생합니다. 이는 보통 MariaDB 버전 차이로 인해 발생할 수 있습니다.
    • 해결: --column-statistics=0 옵션을 추가
      • COLUMN_STATISTICS 테이블 관련 쿼리를 비활성화합니다
profile
개발할게요

0개의 댓글