EC2 발판 서버를 통해 RDS DB를 다른 RDS DB로 옮기는 방법

소개


제목대로 EC2 발판 서버를 통해 RDS DB를 다른 RDS DB로 옮기는 방법을 설명합니다.

흐름


①EC2에 SSH 접속하기
②EC2에서 RDS의 mysql에 로그인할 수 있는지 확인
③ RDS의 DB를 EC2로 내보내기
④ 다른 RDS의 DB 파라미터 그룹의 파라미터 변경
⑤EC2에서 다른 RDS로 가져오기

환경


EC2:Amazonlinux2
RDS:Aurora/mysql

①EC2에 SSH 접속하기


이 기사를 참고하십시오.
SSH 접속한 상태에서 ①~⑤까지 작업하십시오.

②EC2에서 RDS의 mysql에 로그인할 수 있는지 확인

$ mysql -h RDSのエンドポイント -P 3306 -u ユーザー名  -p

Enter password: 

mysql> SHOW DATABASES;

old_DB
복사할 DB 이름을 old_DB로 지정합니다.

에러 대처 ①「Access denied」

ERROR 1045 (28000): Access denied for user
"Access denied"가 표시되고 mysql에 로그인할 수 없는 경우 보안 그룹에 문제가 있을 수 있습니다. RDS의 인바운드 규칙을 확인하고 EC2로부터의 연결이 허용되는지 확인해 보십시오.
또한, RDSのエンドポイント, ユーザー名, パスワード가 잘못되었을 가능성이 있으므로, 확인 방법을 모르는 분은, 이하의 사이트를 참고에 조사해 주세요.
【AWS도해】 RDS의 유저명과 패스워드를 잊었을 경우의 확인 방법
Aurora/mysql이면 リージョン別クラスターのライターインスタンスRDSのエンドポイント로 지정했습니다.

에러 대처②「mysql: 명령을 찾을 수 없습니다」


mysql을 설치합시다.
mysql-community 리포지토리를 사용하여 mysql을 yum으로 설치합니다.
$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
$ sudo yum install -y mysql 
$ mysql --version
mysql  Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)
그 외에도 Homebrew에서 mysql을 설치하는 방법도 있습니다.

③ RDS에서 EC2로 내보내는 명령

$ mysqldump --skip-column-statistics --quick --single-transaction -h RDSのエンドポイント -u 別のRDSのユーザー名 -p  DB名 | sed -e 's/DEFINER[ ]*=[ ]*[^*]*\*/\*/' >  /var/tmp/dump.sql
DB 이름: new_DB옵션: --skip-column-statistic --quick --single-transaction왜 이런 명령인지는 이쪽을 참고해 주세요.
MySQL DB에서 AWS RDS로 데이터 가져오기

④ 다른 RDS의 DB 파라미터 그룹의 파라미터 변경


다른 RDS의 mysql에 로그인하고 아래의 Value가 OFF이면 ON해야합니다.
mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF   |
+---------------------------------+-------+
OFF인 경우 ⑤의 EC2에서 다른 RDS로 가져올 수 없습니다.
RDS의 DB 매개 변수 그룹에 새 매개 변수를 만들고 log_bin_trust_function_creators를 1로 변경하고 RDS에 연결하고 다시 시작합니다. 그러면 Value가 ON됩니다.
RDS에 원래 붙어 있는 기본 DB 파라미터 그룹은 파라미터를 변경할 수 없는 사양이므로 새로 만들어야 합니다.
mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON    |
+---------------------------------+-------+
자세한 방법은 아래를 참조하십시오.
AWS RDS MySQL에서 create function 허용
htps : // 아 ws. 아마존. 이 m/jp/p 레미우 m 쏘 rt/k의 w㎇d 굳어서 r/rds-mysql-푼c 치온 s/

⑤EC2에서 다른 RDS로 가져오기


다른 RDS에 새 DB를 만들고 해당 DB로 가져옵니다.
mysql> CREATE DATABASE new_DB;
$ mysql -h RDSのエンドポイント -u 別のRDSのユーザー名 -p  DB名 < /var/tmp/dump.sql

좋은 웹페이지 즐겨찾기