사이트 이전 후 데이터베이스에서 워드프레스 URL을 일괄 변경하는 방법

0

워드프레스에서 사이트 URL을 일괄 변경하고 싶은 경우 다음 글에서 소개하는 플러그인을 사용하면 워드프레스 관리자 페이지 내에서 수월하게 URL을 모두 변경하거나 업데이트할 수 있습니다.

사이트를 이전한 후에 워드프레스 URL을 변경해야 하는 경우가 있습니다. 이 경우 phpMyAdmin과 같은 MySQL 클라이언트에서 사이트 URL을 전체적으로 변경할 수 있습니다. 워드프레스 관리자 페이지에 접속할 수 없는 경우에 이 방법을 이용할 수 있습니다.

경고: DB 작업은 위험하므로 반드시 백업을 실시하시기 바랍니다!!! DB 작업은 되돌릴 수 없습니다. 잘못될 경우 사이트에 영구적으로 접속하지 못할 수도 있습니다.

phpMyAdmin에서 워드프레스 URL을 전체적으로 변경하기

먼저 phpMyAdmin에 접속하도록 합니다. phpMyAdmin에 접속하는 방법을 모를 경우 사이트가 호스팅되고 있는 호스팅 업체에 문의하시기 바랍니다. 카페24의 경우 보안 문제로 phpMyAdmin 서비스가 종료되었습니다. 대신 다음 글을 참고하여 HeidiSQL 같은 다른 MySQL 클라이언트를 사용하여 데이터베이스에 접속할 수 있습니다.

블루호스트사이트그라운드 같이 cPanel을 제공하는 웹호스팅을 이용하는 경우 cPanel에서 phpMyAdmin에 접속할 수 있습니다.

cPanel에서 제공하는 phpMyAdmin 툴

Databases > phpMyAdmin을 클릭하면 phpMyAdmin에 접속됩니다. 해당 DB를 선택한 다음 SQL 탭을 클릭합니다.

phpMyAdmin에서 사이트 URL 일괄 업데이트하기

위와 같은 화면에서 다음과 같은 코드를 입력합니다. (실제 UI는 phpMyAdmin 버전에 따라 다를 수 있습니다.)

UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl.com', 'http://www.newurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl.com','http://www.newurl.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl.com', 'http://www.newurl.com');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl.com','http://www.newurl.com');

사이트 주소를 적절히 변경하고 필요한 경우 table prefix 값도 적절히 수정합니다. 쿼리문을 실행하기 전에 반드시 여러 번 검토하여 이상이 없는지 확인합니다. 앞서 언급했듯이 반드시 DB 백업을 하시기 바랍니다. DB 백업을 하지 않았다면 지금이라도 하시기 바랍니다.

이상이 없으면 맨 아래의 "Go" 또는 "실행"을 클릭하면 모든 워드프레스 URL이 새로운 URL로 변경됩니다.

DB 복구하기

만약 주소를 잘못 변경했거나 DB를 잘못 조작하여 사이트에 접속할 수 없게 되는 경우 해당 DB 내의 모든 테이블을 삭제한 후에 Import 탭을 통해 백업한 DB 파일을 임포트(가져오기)화여 복구할 수 있습니다.

phpMyAdmin - 데이터베이스 가져오기

phpMyAdmin을 통해 가져올 수 있는 DB의 크기에는 제한이 있습니다. 임포트 가능한 DB 크기를 추가하는 경우 SSH를 통해 DB를 임포트할 수 있습니다.

SSH에 접속할 수 없는 경우에는 DB 크기를 분할하여 임포트를 시도해볼 수 있습니다.

커맨드 라인에서 사이트 URL 일괄 변경하기

고급 사용자인 경우 command line을 통해 URL을 일괄 변경할 수 있습니다.

mysql> UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldurl.com', 'http://www.newurl.com') WHERE option_name = 'home' OR option_name = 'siteurl';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0

mysql> UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl.com','http://www.newurl.com');
Query OK, 0 rows affected (0.03 sec)
Rows matched: 1962 Changed: 0 Warnings: 0

mysql> UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldurl.com', 'http://www.newurl.com');
Query OK, 0 rows affected (0.05 sec)
Rows matched: 1962 Changed: 0 Warnings: 0

mysql> UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://www.oldurl.com','http://www.newurl.com');
Query OK, 0 rows affected (0.02 sec)
Rows matched: 1543 Changed: 0 Warnings: 0

SSH에서 DB에 접속하려는 경우 다음 명령을 실행합니다.

mysql -h <DBhostname> -u <DBuser> -p <DBname>

참고:

댓글 남기기

댓글을 입력해주세요!
이름을 입력해주세요