이 글에서는 로컬 머신에 PostgreSQL과 PGLoader를 설치하고, EC2에 있는 MySQL 데이터베이스를 로컬 PostgreSQL로 마이그레이션하는 과정을 설명.
예제에서는 test 데이터베이스와 testuser 사용자를 사용.
먼저 로컬 머신에 PostgreSQL을 설치. Ubuntu를 사용하고 있다고 가정.
sudo apt update sudo apt install postgresql postgresql-contrib
PostgreSQL 설치가 완료되면 PostgreSQL 서비스가 자동으로 시작됩니다. PostgreSQL 서비스 상태를 확인.
sudo systemctl status postgresql
PostgreSQL이 설치된 후, PostgreSQL 데이터베이스와 사용자를 생성.
sudo -i -u postgres
PostgreSQL 셸에 들어가서 test 데이터베이스와 testuser 사용자를 생성.
create database test;
create user testuser with encrypted password 'testpassword';
grant all privileges on database test to testuser;
\q
PGLoader는 여러 데이터베이스에서 PostgreSQL로 데이터를 쉽게 마이그레이션할 수 있도록 해줍니다.
sudo apt-get install pgloader
설치가 완료되면 pgloader 명령어를 사용할 수 있습니다.
다음 단계는 EC2에 있는 MySQL 데이터베이스에 접근하는 것. 여기서는 test 데이터베이스와 testuser 사용자를 사용. MySQL 데이터베이스에 접속.
mysql -u root -p -h <EC2-MySQL-Endpoint>
MySQL 셸에 접속한 후, test 데이터베이스와 testuser 사용자를 생성.
create database test; create user 'testuser'@'%' identified by ```'testpassword'; grant all privileges on test.* to 'testuser'@'%'; flush privileges; \q
MySQL 사용자의 인증 플러그인을 mysql_native_password로 설정. 이는 PGLoader가 MySQL에 접속할 수 있도록 하기 위함.
ALTER USER 'testuser'@'%' IDENTIFIED WITH mysql_native_password BY ```'testpassword'; FLUSH PRIVILEGES;
MySQL 서버의 기본 인증 플러그인을 mysql_native_password로 설정. MySQL 설정 파일을 편집.
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
다음 줄을 [mysqld] 섹션에 추가.
[mysqld]
default_authentication_plugin=mysql_native_password
설정을 저장하고 MySQL 서버를 재시작.
sudo service mysql restart
이제 PGLoader를 사용하여 MySQL에서 PostgreSQL로 데이터를 마이그레이션. 아래 명령어를 실행.
pgloader mysql://testuser:testpassword@<EC2-MySQL-Endpoint>/test postgresql://testuser:testpassword@localhost/test
이 명령어는 test 데이터베이스를 MySQL에서 PostgreSQL로 마이그레이션.
PostgreSQL에 접속하여 데이터가 성공적으로 마이그레이션되었는지 확인.
psql -U testuser -d test
각 테이블의 데이터를 확인.
-- 'example_table' 테이블의 데이터 확인 SELECT * FROM example_table;