MySQL DB 에서 Search/Replace 하기

By | 2022년 01월 18일

WordPress + mysql 웹사이트를 설치한 후 같은 ip 주소, 같은 서버를 계속 사용할 수 있다면 좋겠지만, 때로는 사정에 의해 웹사이트를 다른 ip 주소로 옮겨야 한다던가, 같은 서버내에서 다른 디렉토리로 옮겨야 할 때가 있다.

그런데 wordpress와 연관된 MySQL DB 속에는 이전 ip 나 data가 저장되어 있는 디렉토리 정보가 같이 포함되어 있어 단순이 wordpress 설정만 바꾸어서는 wordpress 접속시 필요한 데이타를 불러오지 못해 DB access 에러가 발생하게 된다. 이러한 문제를 해결하려면 wordpress 관련 MySQL DB 내에 저장되어 있는 ip 주소나 디랙토리 정보를 새로운 환경에 맞게 수정해 주어야 하는데, 이럴때  Search-Replace-DB 라는 php script를 사용하면 DB 를 손쉽게 수정할 수가 있다.

Search-Replace-DB는 https://github.com/interconnectit/Search-Replace-DB 에서 찾을 수 있다.

사용법

  1. 먼저 만약을 위해  mysql database를 복제해 둔다.
  2. 웹사이트의 모든 파일을 새로운 위치로 옮긴다.
  3. Search-Replace-DB 스크립트 파일을 웹사이트의 루트폴더 또는 상위 폴더로 전송한다.
  4. 웨브라우져에서 스크립트가 있는 폴더로 이동한다. 그러면 Search-Replace-DB 가 작동을 하게 되는데 웹페이지 상에 search and replace 입력란에 필요한 항목을 채운다.
  5. 먼저 Dry run 버튼을 클릭해 수정없이 작동시켜 본다.
  6. 이상이 없으면 search/replace를 실행한다.
  7. 수정 후 wordpress 디렉토리내의 php 스크립트를 삭제하겠느냐는 창이 뜨게 되는데 이를 실행시키는 경우 디렉토리 내에 있는 wordpress php 스크립트를 포함한 모든 스크립트가 삭제 되므로 사용에 주의해야 한다. 가능하면 wordpress 디렉토리 내에 생성된 Search-Replace-DB 관련 파일을 수동으로 지워주는 것이 안전하다.

추가

사실 Search-Replace-DB를 사용해 본지 한참 지난 상태여서 몇가지 항목에 대해서는 다소 기억이 불투명한데 위의 사용법 2 실행 후에 wordpress directory에 있는 index.php를  old_index.php 로 변경하고, 7 실행 후에 old_index.php 를 index.php 로 복원 시켜주는 것이 필요할 것 같다.  이때 file의 persmission 과 owner 도 원상 복귀 시켜 주어야 한다.

답글 남기기