MariaDB를 워드프레스용으로 사용하고 있다. 워드프레스를 사용하면서 운용하는 서버를 바꿔야 하는 경우가 생긴다. 성능이 더 좋은 곳으로 옮기거나 아니면 아주 새롭게 설치를 다시 한다거나, 또는 백업해 놓은 파일로 복구를 하거나 등등 여러 가지 경우가 있게 된다. 이 글은 DB를 이전하는 과정을 정리한다.
이 과정은 아래과 같다.
전체 과정
mysqldump
를 사용하여 특정 database나 DB전체를 내보낸다.- 이 파일이 너무크면
tar
를 이용하여 압축한다 - 대상 서버로 파일을 전송한다
- 대상서버에서 파일이 압축 되어있다면 압축을 푼다
- 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 인스턴스가 들어왔는지 확인한다.