Export WordPress DB in phpMyAdmin

워드프레스 사이트를 수동으로 이전하는 방법

개요

워드프레스를 이전하려는 경우 Duplicator와 같은 툴을 사용하면 편리하게 이전이 가능합니다. Duplicator로 실패할 경우 Super Backup & Clone과 같은 플러그인으로 시도해볼 수도 있습니다.

이렇게 플러그인을 사용하여 이전할 수 있다면 가장 빠르고 간편하지만 간혹 플러그인으로 마이그레이션할 때 오류가 나기도 합니다. 오류가 날 경우 오류 메시지를 확인하여 대처해야 할 것입니다.

이런 자동 이전에 실패하는 경우에는 수동으로 이전하는 수밖에 뾰족한 수가 없을 것 같습니다. 수동으로 이전하는 방법으로 여러 가지가 있겠지만 워드프레스 도구 > 내보내기 기능을 사용하거나 DB를 직접 이전하는 방법을 생각해볼 수 있습니다.

워드프레스 내보내기 기능

예를 들어, www.old.com 사이트에서 www.new.com 사이트로 이전하려는 경우를 생각해보겠습니다. 이전 사이트(www.old.com)에서 도구 > 내보내기를 선택하고 모든 컨텐츠를 내보내기 합니다.

Export Content in WordPress

그러면 위의 그림과 같이 글, 페이지, 미디어 파일이 내보내기됩니다. 내보내기 되는 파일의 확장자는 xml입니다.

컨텐츠를 저장했다면 이제 새로운 사이트(www.new.com)에서 컨텐츠를 가져오기 하도록 합니다. 도구 > 가져오기에서 WordPress를 선택하고 위에서 내보내기 했던 xml 파일을 가져오도록 합니다.

이후의 과정은 “워드프레스 유료 테마 설치 후 데모 사이트와 비슷하게 설정하기” 글에 설명되어 있는 데모 파일을 가져오기 과정과 유사합니다.

성공적으로 컨텐츠를 가져왔다면 설정 등을 이전 사이트(www.old.com)와 비슷하게 조정하도록 합니다. (이 글을 참고해보시기 바랍니다.)

위의 컨텐츠 가져오기도 실패하는 경우가 있습니다. 사이트 리뉴얼을 위해 이 블로그의 컨텐츠를 모두 내보내기(Export)한 후에 서브 도메인을 만들고 컨텐츠 가져오기를 하니 “…를 가져오는데 실패함”이라는 오류 메시지가 줄줄이 뜨면서 가져오기에 실패하네요. 살펴보니 미디어 파일은 일부 가져오기에 성공했지만 대부분의 컨텐츠는 가져오지 못했습니다. 즉, 부분적으로만 작동한 것이죠.

이런 경우 방법이 없을까 검색하여 “WordPress Import Failed? Here’s How to Fix It“이라는 글을 찾았습니다. 즉, 파일 업로드 크기 때문에 실패할 수 있습니다. 내보내기한 XML 파일이 약 20MB에 달하네요. 아마도 파일 크기가 문제였던 것 같습니다. 파일 업로드 크기를 조정하는 방법은 이 글을 참고해보시기 바랍니다. 업로드 파일 크기 조정 방법 중에서 함수 파일에 다음 코드를 넣고 진행해보니 조금 오류가 나는 컨텐츠가 있었지만 대부분은 그대로 가져오네요.

@ini_set( 'upload_max_size' , '64M' );
@ini_set( 'post_max_size', '64M');
@ini_set( 'max_execution_time', '300' );

컨텐츠를 모두 가져왔다면 테마 등의 설정을 이전 사이트와 동일하게 해주도록 합니다. 이 방법을 선호하는 분이 계시겠지만 설정을 다시 해주어야 하므로 별로 좋은 방법 같지 않습니다. 아래의 DB 내보내기/가져오기 방법을 사용하여 이전을 하면 모든 설정을 그대로 가져올 수 있어 이전 후에 별도의 작업이 필요하지 않습니다.

DB 내보내기/가져오기

위의 방법에 모두 실패하면 DB를 내보내기한 후에 새로운 사이트에서 가져오는 방법을 시도해 볼 수 있습니다. 프로세스는 다음과 같이 진행해보았습니다. (* 양 사이트에 워드프레스가 설치되어 있다고 가정합니다.)

  1. 이전 사이트의 wp-content 폴더를 통째로 복사하여 FTP를 통해 새로운 사이트의 wp-content로 붙여넣기합니다.
  2. 이전 사이트(www.old.com)의 phpMyAdmin에 접속하여 DB를 내보내기합니다.
    Export WordPress DB in phpMyAdmin
  3. 새로운 사이트(www.new.com)의 phpMyAdmin에 접속하여 위에서 내보내기한 DB를 가져오기 합니다.
  4. DB 내용에서 이전 사이트 정보를 새로운 사이트 정보로 일괄 수정합니다.

보통은 위와 같이 하면 대부분 성공적으로 사이트가 이전됩니다.

하지만 위와 같이 진행해도 제대로 이전이 되지 않는 경우가 발생할 수 있습니다. 이와 관련하여 인터넷을 검색해보니 제대로 된 글을 찾기가 쉽지 않네요. 다음 동영상이 비교적 상세하게 설명하고 있습니다.

위의 방법으로 안 될 경우 이전 사이트에서 내보내기 한 sql 파일을 직접 텍스트 에디터로 수정한 후에 새로운 사이트의 phpMyAdmin에서 가져오기 하는 방법을 이용해볼 수도 있습니다. 가령 새로운 사이트의 DB도 내보내기 하여 두 DB를 비교하면서 이전 DB에서 이전 사이트 정보를 새로운 사이트 정보로 일괄 수정한 후에 새로운 사이트에서 DB 가져오기를 시도해보니 성공적으로 사이트가 열리고 관리자 페이지에도 이전 워드프레스 정보로 로그인할 수 있습니다. 대부분 원하는 대로 Import가 되고, 일부 설정은 수동으로 조정해주어야 합니다.

시간이 될 때 위의 동영상을 꼼꼼히 시청해보면 도움이 될 것 같습니다.

마치며

간혹 데이터베이스에서 가져오기 자체가 안 되는 경우가 있습니다. 원인은 다양할 것 같습니다. 예를 들어 인코딩이 맞지 않은 경우가 있습니다. utf8mb4 문자셋 관련 문제가 발생하는 경우 “utf8mb4 문자셋 문제로 DB 이전에 실패하는 경우” 글을 참고해보시기 바랍니다. 이런 작업을 하다가 잘 안 되면 웹호스팅 담당자에게 문의하여 오류가 나니 좀 봐달라고 하면 마음씨 좋은(?) 담당자일 경우 알아서 Import시켜줄 수 있습니다. 실제로 이런 경험을 이전에 한 적이 있습니다. 요청을 해보고 해 주면 좋고, 안 해주도 본전이니까요.

시간이 될 때 데이터베이스에 대해 공부해봐야지 하고 있지만 책만 사놓고 눈길도 주지 않고 있습니다. 해외 커뮤니티에서 이와 같은 작업을 하려는 경우에 참고할 만한 책이 있냐고 물어본 적이 있습니다. 그러니까 딱히 이런 부분만을 다루는 책은 없다면서 http://www.postgresql.org/docs/current/static/index.html 사이트를 참고하여 공부해보라고 하네요. 굳이 책을 사지 않고도 이 사이트를 참고해도 괜찮을 것 같습니다.

♠ 워드프레스 사이트 이전과 관련하여 문제가 있는 경우 이 페이지에서 서비스를 요청(유료)하실 수 있습니다.



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.