MySQL, MariaDB 데이터베이스 이전

MariaDB를 워드프레스용으로 사용하고 있다. 워드프레스를 사용하면서 운용하는 서버를 바꿔야 하는 경우가 생긴다. 성능이 더 좋은 곳으로 옮기거나 아니면 아주 새롭게 설치를 다시 한다거나, 또는 백업해 놓은 파일로 복구를 하거나 등등 여러 가지 경우가 있게 된다. 이 글은 DB를 이전하는 과정을 정리한다.

이 과정은 아래과 같다.

전체 과정

  1. mysqldump를 사용하여 특정 database나 DB전체를 내보낸다.
  2. 이 파일이 너무크면 tar를 이용하여 압축한다
  3. 대상 서버로 파일을 전송한다
  4. 대상서버에서 파일이 압축 되어있다면 압축을 푼다
  5. MySQL/MariaDB에서 SQL문을 이용하여 불러 읽어온다.

단계 1 – mysqldump를 사용하여 특정 database나 DB전체를 내보내기

Authentication 플러그인을 사용하지 않는 일반 사용자의 경우

$ sudo mysqldump -u root -p db_to_migrate > db_to_migrate.sql

위 명령어를 실행하면 root 패스워드를 물어볼 것이고 완료되면 db_to_migrate.sql이라는 파일이 생길 것이다. db_to_migrate.sql 는 이전할 database인스턴스 이름이다.

Authentication 플러그인을 사용하는 기본 사용자의 경우

$ sudo mysqldump db_to_migrate > db_to_migrate.sql

단계 2 – tar를 이용하여 파일 압축

단계 1에서 만들어진 파일 크기가 크다면 압축을 한다.

$ tar -cvzf db_to_migrate.tar.gz db_to_migrate.sql

단계 3 – 대상 서버로 파일 전송

ftp를 이용하거나 대상 서버가 SSH를 사용할 수 있다면 scp를 써서 파일을 대상 서버에 전송한다. 아래는 scp 명령어를 사용한 예이다. 대상 서버 example.com에 /var/receiving/ 디렉토리가 있어야 한다.

$ scp db_to_migrate.tar.gz root@example.com:/var/receiving/db_to_migrate.tar.gz

단계 4 – 압축풀기

전송된 파일이 압축되어있다면 압축을 푼다.

$ cd /var/receiving
$ tar-zxvf db_to_migrate.tar.gz 

단계 5 – MySQL/MariaDB에서 SQL문을 이용하여 불러오기

Authentication 플러그인을 사용하지 않는 일반 사용자의 경우

$ sudo mysql -u root -p a_database < db_to_migrate.sql

Authentication 플러그인을 사용하는 기본 사용자의 경우

$ sudo mysql a_database < db_to_migrate.sql

이 전 과정을 마쳤다면 MySQL/MariaDB에 들어가서 DB 인스턴스가 들어왔는지 확인한다.

참조

Leave a Comment