Avatar
안녕하세요
방문자님
로그인 또는 회원가입
워드프레스 이전할 때 Search-Replace-DB-master 사용 시 'could not find driver' 에러 발생 대처 방법
2014년 4월 14일
27

DIY! 워드프레스 쇼핑몰 90 페이지에서 데이터베이스 변경 프로그램 실행 시 에러가 발생할 경우 대처 방법을 알아보겠습니다.

52

책의 내용에 보면 이전되는 wordpress2의 URL과 데이터베이스 변경 프로그램 폴더를 입력하고 replace에는 이전하는 wordpress의 URL을 입력하고 with에는 이전되는 wordpress2의 URL을 입력합니다. 주소창에서 wordpress2가 아닌 wordpress로 입력해도 에러가 발생하기도 합니다.  또한 어떤 회원님은 워드프레스를 웹호스팅에 설치할 때 데이터베이스 파일 문자셋(Character set)을 euc-kr로 설정한 경우에도 에러가 발생합니다. 한번 에러가 발생하면 수정해도 안되더군요.

참고로 말씀드리면 이 스크립트는 워드프레스에서도 권장하는 프로그램입니다.

http://codex.wordpress.org/Moving_WordPress

 

Picture1

이러한 에러가 발생한 후 모든 설정이나 코드를 제대로 입력했는데요 위와 같은 'could not find driver' 메시지가 계속 나타나면 데이터베이스를 위 프로그램이 아닌 수동으로 변경해 해결해야 합니다.

제가 이러한 에러를 발생시키려고 했지만 제 컴퓨터에서는 url을 틀리게 입력해도 에러는 나타나지 않고 검색만 하더군요. 예를 들어 replace의 자리에 wordpress가 아닌 wordpress2를 입력해도 검색은 되고 에러는 나타나지 않습니다. 생각컨대 이러한 에러가 발생하는 원인은 아마도 다른 프로그램의 영향이라던가 컴퓨터의 개별적인 설정이 달라서 그런 것 같습니다. 워드프레스의 사이트를 이전하는 방법은 여러 가지가 있으니 위 프로그램이 에러가 발생하면 다음과 같이 해결해보세요.

방법은 다음과 같습니다.

0. 근본적인 해결방법

아래 답변에서 Jinsuk Cho 님이 제공해주셨습니다.

52

오토셋이 설치된 폴더에서 server/conf 폴더로 가면 php.ini 파일이 있습니다. 이 파일을 열고 편집합니다.

53

890번째 줄을 보면 extension=php_pdo_mysql.dll이 있습니다. 이 코드의 앞에 있는 세미콜론을 제거하면 됩니다. 세미콜론은 활성화, 비활성화를 결정합니다. 저장한 후 오토셋을 종료하고 다시 열어줘야 합니다.

54

종료는 팝업 창에서 닫기 버튼을 클릭하거나 메뉴에서 종료를 클릭합니다. 오토셋을 다시 실행하면 설정 변경이 적용됩니다.

92

모듈이 활성화 됐는지 확인하려면 위처럼 php_pdo_mysql.dll에 체크돼있어야 합니다.

 

1. pypMyAdmin에서 직접 데이터베이스를 수정하는 방법

63

phpMyAdmin의 사이드바에서 wordpress2를 선택하면 콘텐츠 영역에 모든 테이블이 나타납니다. wp_options 테이블의 '보기'를 클릭하면 다음과 같은 화면이 나타납니다.

64

제일 첫 번째 항목으로 option_name에 siteurl이 있는데 option_value의 url이 있는 부분을 더블 클릭하면 수정할 수 있는 상태가 됩니다. 여기서 url의 마지막에 2를 추가한 다음 다른 빈 곳을 클릭하면 적용됐다는 메시지가 나타납니다. 실제 사이트로 이전할 경우는 http://diywordpress.kr 처럼 실제 사이트의 url을 입력해줍니다.

오토셋에서 실행하면 phpMyAdmin이 최신 버전이라서 이것이 가능하지만 대부분의 웹호스팅에서는 가볍게 하기 위해 아주 오래된 버전을 사용하므로 이런 기능이 지원되지 않으니 좌측 끝의 수정 을 클릭하고 해당 부분을 수정한 다음 하단에서 실행 버튼을 클릭해주면 됩니다.

65

하단에서 화살표 아이콘을 클릭하면 2 페이지로 갑니다. home이라는 option_name에서 이전과 같은 방법으로 url을 수정해줍니다.

66

SQL 탭을 클릭하고 입력란에 아래의 코드를 추가한 다음 실행 버튼을 클릭합니다.

UPDATE wp_posts SET post_content = REPLACE(post_content, 'localhost/wordpress/', 'localhost/wordpress2/');

 

위 코드를 복사해 사용할 경우 따옴표를 다시 입력하세요. 꼬리가 있는 따옴표라서 에러가 날 수도 있습니다. 웹브라우저의 다른 탭에서 url을 http://localhost/wordpress2로 입력하고 엔터 키를 누르면 이제 제대로 나타날 것입니다.

 

2. 데이터베이스 파일을 직접 수정하는 방법

55

데이터베이스 파일을 서브라임 텍스트 편집기에 엽니다.

67

Ctrl+H 키를 누르면 하단에 패널이 나타납니다. 이 기능은 파일 내용 중 특정 단어를 다른 단어로 바꾸는 역할을 합니다. 이전의 데이터베이스의 모든 콘텐츠의 URL이 http://localhost/wordpress로 돼있으니 http://localhost/wordpress2로 바꿔줍니다. 첫번째 입력란의 url을 찾아서 두번째 입력란의 url로 변경하는 것입니다. 우측 끝의 Replace All 버튼을 클릭하면 모두 변경됩니다. 변경이 완료되면 Ctrl+Shift+S 키를 눌러 다른 이름으로 저장하기 화면에서 wordpress2.sql로 변경하고 저장합니다.

57

오토셋의 phpMyAdmin으로 들어가서 사이드바에서 wordpress2를 선택하면 콘텐츠 영역에 모든 데이터베이스 테이블이 나타납니다. 하단에서 모두 체크에 체크하고 우측의 '선택한 것을:' 선택상자를 클릭해 '삭제'를 선택한 다음 우측에서 실행 버튼을 클릭합니다. 가져오기한 데이터베이스는 이전의 wordpress를 포함하고 있는데 프로그램에 의해 변경이 안되니 제거하는 것입니다. 다음 화면에서 '예' 버튼을 클릭하면 제거됩니다.

58

가져오기 탭을 선택하고 파일 선택 버튼을 클릭해 데이터베이스를 변경하고 저장한 wordpress2sql을 찾아 업로드 합니다. 하단에서 실행 버튼을 클릭하면 가져오기가 진행되고 잠시 후에 완료됩니다. 이제 데이터베이스 변경 프로그램에 의한 방법과 동일하게 변경이 됐으니 http://localhost/wordpress2/로 접속하고 진행하면 됩니다. 이와 같이 텍스트 편집기로 데이터베이스를 변경하는 방법은 작은 용량의 파일에서만 가능합니다. 수 기가 바이트에 달하는 데이터베이스는 편집기에 열리지도 않습니다.


  1. 빠른 답변 감사합니다.
    저도 이부분에서 막혀서 잠시 삽질좀 하다가
    혹시나하고 여기 왔는데 다른분들 중에서도 이 부분에서 오류가 나신분이 계셨네요...
    새로 제시해주신 방법에서 1번 과정으로 저는 데이타베이스 변경을 마쳤습니다.

    마지막 부분에서 SQL 탭을 클릭하고 입력란에 제시해주신 코드를 추가한 다음 실행 버튼을 누르니
    상단에 다음의 메시지를 가진 붉은 바의 경고문이 떠서 다시 변경에 실패했나 했는데요,

    ' #1054 - unknown column (특수문자2개)localhost in field list'

    다행히도
    웹브라우저 다른탭에서 http://localhost/wordpress2로 입력하니 잘 이전되어서 열리더군요

    경고메시지 보고 계속 삽질하려다가 혹시나 해서 변경된 주소를 입력해보니 잘 동작이 되네요!
    혹시 다른 분도 저 부분에서 막혀서 삽질하실까봐 별거 아니지만 댓글에 함께 남깁니다.(사진업로드가 안되서 글로만 남겨요)

    그럼 남은 하루도 좋은 하루되세요.

    • 답글 감사합니다. 원인을 조속히 파악해 봐야겠지만 당분간은 원시적인 방법으로 사용하는 수밖에는 없겠습니다.

  2. 아~~저도 이것 때문에 무지하게 고생하다가 혹~~시나 해서
    들어와 보니 저와 같이 오류가 나신 분이 계시군여 ^^

    전 첫번째 방법으로 해결했습니다....!!

  3. 안녕하세요..
    저번에 이건으로 원격제어까지 받았던 독자입니다.
    알려주신 내용대로 1번의 방법으로 성공하였습니다.
    복잡하지도 않아서 이 방법으로 하는 것도 좋은거 같습니다.
    성공하니까 너무 좋네요..

    혹시나 하나 마음에 제가 이방법을 하던 중 실수한 부분을 공유합니다.
    1번방법의 제일 마지막에 코드를 넣을 때 입니다.
    "SQL 탭을 클릭하고 입력란에 아래의 코드를 추가한 다음 실행 버튼을 클릭합니다."
    저는 이글을 보구 기존에 1열에 있는 코드를 그대로 두고 2열에 코드를 추가하였습니다.
    그랬더니 에러가 나더군요.. 그래서 그림에 있는 것처럼 기존 코드를 지우고 1열에 코드를 추가하니
    성공하였습니다.
    혹, 저처럼 하는 분이 계실까봐 적었습니다.

    수고하세요..

  4. 앗!! 된거같아요!! 다음장에 나온것과 같은 화면이 떴습니다.

  5. 1번과 2번 다 해보았는데 오류해결이 안됩니다. ㅜㅜ

  6. 저도 같은 문제로 작동이 안 되었는데..
    아래와 같은 방법으로 간단하게 해결하였습니다.
    1. C:\AutoSet8\server\conf\php.ini 파일을 열어서..
    2. extension=php_pdo_mysql.dll 문장을 검색한 후에.. 앞에 주석(;)을 제거하고 저장.
    3. 웹서버를 재부팅 한 후에..
    4. Search-Replace-DB-master 페이지로 들어가서 [update details]-[live run]버튼을 클릭합니다.
    5. 아주 자~알 작동 됩니다. 끝..!!

    아래는 제가 문제해결에 참고한 글 입니다.
    http://blog.naver.com/PostView.nhn?blogId=meelong0&logNo=140126617258&categoryNo=49&viewDate=&currentPage=1&listtype=0

  7. 아...정말 감사합니다^^

  8. Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

    위에 글 따라했는데요 위에같은 에러메시지가 나면서 phpadmin 이 안들어가지는데요 autoset을 다시 설치해도 안들어가지는데요 혹시 해결할수있을가해서 여쭤봅니다. ㅠ

  9. 1. C:\AutoSet8\server\conf\php.ini 파일을 열어서..
    2. extension=php_pdo_mysql.dll 문장을 검색한 후에.. 앞에 주석(;)을 제거하고 저장.

    <여기서 ctgl+f 로 파인드 명령어로 찾아서 수정하세요. 위 그림처럼 꼭 890번에 위치하진 않는것 같습니다.)

    3. 웹서버를 재부팅 한 후에..
    4. Search-Replace-DB-master 페이지로 들어가서 [update details]-[live run]버튼을 클릭합니다.

    클리어~

  10. 도저히 안됩니다... 이걸로 한달째 고생중인데,, 알려주신 방법 모두 다 되지 않습니다...

    localhost/wordpress2/로 하면 화면은 나오는데
    localhost/wordpress2/변경한 폴더명 (Search Replace...)으로 접속해서 update detail을 누르면
    Could not find 가 계속 나오네요..

    시행착오 겪으면서 여기 저기 다 알아봤는데 도저히 모르겠습니다..
    여기 사이트는 가입하고 일정 기간이 지나야 댓글 달 수 있는 자격이 생기는건가요 근데?? 이제 댓글을 달 수가 있네요 ㅠ

    • 0번째 방법을 사용하는 것이 가장 현실적인데요. 위 비에치디자인님의 댓글대로 웹서버를 재부팅 하세요. 오토셋 제어 메뉴에서 웹서버 재시작을 클릭하면 됩니다. 그리고 댓글은 회원은 언제든지 달 수 있고 게시판 그룹에 가입해 새로운 게시글을 작성할 수도 있습니다.

      • 정말로 댓글에 나와있는 방법대로 다 해보았습니다.. Autoset - 제어 - 종료 해서 다시 킨거구요,
        전부다 지우고 다시 해야하는건가요..?

      • 아 참, 저는 text 편집기에서 최초로 php파일을 열였을 때, 이미 extension=php_pdo_mysql.dll 앞에 세미콜론이 없었습니다..

        이게 문제가 되나요?

    • 그렇다면 모듈이 이미 활성화 돼있는 상태니 코드를 추가할 필요는 없습니다. 나머지 1번 이후의 방법을 천천히 해보시는 수 밖에 없습니다. 모두 사이트를 이전할 때 사용하는 정상적인 방법입니다. 천천히 해보세요. 모두 제대로 되는 것입니다.

  11. 안녕하세요,
    위의 1번으로 이전하는 방법 적용시,

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE wp_posts SET post_content = REPLACE(post_content, `localhost/wordpress/`,' at line 2

    위의 빨간 상자의 에러가 뜨지만, 현재 localhost/wordpress2 를 주소창에 치면, 홈페이지는 이상없이 뜹니다.

    하지만 나중에 이상이 발생하지 않을까 걱정이 되는데요. 사이트가 wordpress2 로 뜨면 무사히 넘어갔다고 볼 수 있는 것인지 문의를 드립니다.

    감사합니다.

    • 에러가나면 반드시 점검해야 합니다. 제대로 나오는 것 같아도 나중에 문제가 될 수 있습니다.
      위 에러 내용을 보면 문법상의 오류인데요. 따옴표를 제대로 입력하지 않거나 했을 때 나옵니다. 위 글에서 복사해 사용할 경우 따옴표가 제대로 나오지 않을 수도 있습니다. 워드프레스 사이트에서 따옴표는 꼬리 달린 형태로 나오기 때문에 이를 복사해 사용할 경우 MySQL에서 따옴표로 인식하지 않을 수도 있습니다.

  12. 이부분에 막히고 있어요.. .다시 한번 해볼게요...

댓글 달기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.