이 글에서는 phpMyAdmin을 통해 DB 내의 문자열 일괄 변경하는 방법에 대해 살펴보겠습니다. 워드프레스 사이트 이전 작업 후에 URL을 일괄 변경해야 하는 경우 사용할 수 있습니다.
아래의 방법 대신 워드프레스에서 제공하는 무료 플러그인을 사용하여 워드프레스 대시보드 내에서 쉽게 기존 URL을 새 URL로 변경할 수 있습니다. 워드프레스 사이트 내 링크를 일괄 변경해주는 Velvet Blues Update URLs을 참고해보세요.
[ 이 글은 2015년도에 최초 작성되었지만 최신 정보를 반영하여 재발행되었습니다. ]
phpMyAdmin을 통해 DB에서 워드프레스 문자열 일괄 변경하기
워드프레스 사이트 이전 작업은 Duplicator를 이용하여 비교적 쉽게 수행할 수 있습니다. Duplicator 사용 방법은 여기를 참고하시기 바랍니다.
두 가지 시나리오를 생각해볼 수 있을 것 같습니다. 첫 번째는 호스팅하던 사이트 주소가 www.aaa.com에서 www.bbb.com으로 주소만 바뀌고 서버는 이전하지 않을 경우, 두 번째는 고객을 위해 워드프레스 사이트를 개인 서버나 로컬 컴퓨터에서 만든 후에 고객사 서버로 이전하는 경우. 첫 번째 경우는 두 번째 경우의 특수한 경우가 되겠네요.
고객사를 위해 워드프레스 사이트를 구축했다가 고객사 서버로 이전할 때 Duplicator를 사용하면 편리하지만 간혹 호환성 문제나 기타 문제 때문에 Duplicator를 이용하지 못할 경우가 있습니다. (경우에 따라 현재 사용 중인 서버의 용량이 부족하여 Duplicator에서 백업을 하지 못하는 경우도 발생할 수 있습니다.) 기존 데이터 파일과 DB를 새로운 서버로 모두 옮긴 경우에 DB에서 워드프레스 사이트 주소를 새로운 주소로 업데이트해줘야 합니다.
먼저 데이터베이스를 백업해야 합니다. 데이터베이스 백업은 phpMyAdmin에서 수행하거나 호스팅업체의 백업 메뉴에서 가능합니다. 한 DB에 여러 워드프레스 웹사이트를 사용하는 경우 이전하고자 하는 사이트의 DB의 테이블 Prefix(접두사)를 확인하여 정확한 DB를 백업하도록 합니다. (잘 모르는 경우 wp-config.php 파일을 확인하시면 됩니다.)
이 작업을 진행하기 전에 데이터 파일과 DB 파일의 백업을 별도로 잘 보관하시기 바랍니다.
기존 데이터 파일들을 새로운 서버에 모두 업로드하고, 기존 DB를 새로운 서버의 DB에서 가져오기(Import) 하도록 합니다. 그리고 wp-config.php 파일의 내용도 새로운 DB에 맞게 수정하도록 합니다.
이제 사이트에 접속해보면 제대로 표시되지 않을 것입니다. 이전 사이트 정보가 그대로 있기 때문에 새로운 사이트 정보로 일괄 변경을 해 줘야 합니다. 이를 위해 SQL 쿼리에서 다음 명령을 실행하도록 합니다.
UPDATE wp_options SET option_value = replace(option_value, 'http://www.aaa.com', 'http://www.bbb.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://www.aaa.com','http://www.bbb.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://www.aaa.com', 'http://www.bbb.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://www.aaa.com', 'http://www.bbb.com');
보통 phpMyAdmin에 접속하여 위의 쿼리를 실행하면 됩니다. 블루호스트에서 phpMyAdmin에 접속하는 방법은 여기를 참고해보세요. 카페24의 경우 phpMyAdmin 서비스를 종료했습니다. phpMyAdmin 설치 파일을 다운로드하여 설치한 후에 접속이 가능합니다.
여기서 워드프레스 테이블 접두사가 wp_인 경우입니다. 만약 wp_가 아닌 경우에는 확인하여 적절히 수정해 주시기 바랍니다. (* 사이트 자체를 이전하지 않고 사이트 주소 정보만 바꾸는 경우 위의 명령만 phyMyAdmin의 SQL에서 실행해주면 됩니다.)
DB 업데이트가 완료되었으면 워드프레스에 접속하여 테스트해보도록 합니다. 글 등이 제대로 나타나지 않을 수 있습니다. 그럴 경우 워드프레스에 관리자로 접속하여 설정 > 고유주소에 들어가서 아무 것도 변경하지 말고 "변경 사항 저장"을 눌러 봅니다. 그래도 잘 되지 않으면 이 과정을 여러 번 해 보도록 합니다.
사이트 자체에 들어가지지 않거나 워드프레스 설치 화면이 나오는 경우 wp-config.php의 내용을 새로운 서버의 DB 정보에 맞게 수정했는지 자세히 확인해봅니다. (그리고 phyMyAdmin에서 해당 DB에서 Import했는지, 그리고 이전 워드프레스 테이블이 정확한지 확인하도록 합니다.)
워드프레스 관리자 페이지에 접속했다면 워드프레스 옵션, 메뉴, 글, 페이지, 플러그인 옵션 등에서 기존 사이트 정보가 있다면 변경하도록 합니다.
요약
이 과정을 모두 마치면 완벽하게 사이트가 이전하게 됩니다.
과정을 간단히 정리해 보면
- 기존 사이트에서 DB를 Export합니다. Export된 DB와 데이터 파일은 만일의 사태를 위해 잘 백업하도록 합니다.
- 기존 사이트의 데이터 파일을 통째로 새로운 사이트로 이전합니다. 이때, wp-config.php 파일에서 DB 정보를 새로운 서버의 DB 정보로 수정합니다.
- 새로운 서버의 DB에 접속하여 Export한 DB를 Import하도록 합니다. 간혹 가다 DB 가져오기가 안 될 수도 있습니다. 저 같은 경우 SSH 관련 문제 때문에 에러가 났습니다. 그런 경우 (DB에 대한 지식이 있다면 직접 해결할 수도 있겠지만) 웹호스팅에 지원을 요청하면 문제를 해결해 줄 것입니다.
- DB에서 위에 나와있는 SQL 명령을 실행합니다.
- 워드프레스 옵션, 글, 페이지 등에서 기존 사이트 정보를 새로운 사이트 정보로 갱신합니다.
저는 대부분 Duplicator를 사용하여 사이트를 이전하는데, 이전 서버의 용량이 제한이 있어 Duplicator로 백업 파일을 만들어 진행할 수 없었기 때문에 웹호스팅에서 제공하는 데이터/DB 백업 기능을 사용하여 데이터와 DB를 백업 받아서 위의 과정을 통해 쉽게 사이트를 이전할 수 있었습니다. (다시 한 번 말씀 드리지만, 만일의 경우를 대비하여 반드시 데이터와 DB를 꼭 백업 받아놓으시기 바랍니다.)
이상으로 워드프레스 사이트를 이전하는 방법을 살펴보았습니다.
DB에서 문자열을 일괄 변경하려는 경우 다음 글을 참고하시기 바랍니다:
https://www.thewordcracker.com/intermediate/search-replace-db-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-db%EC%97%90%EC%84%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9D%BC%EA%B4%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0/