Home 게시판 커뮤니티 Q&A wp_option 테이블에 rewrite_rules가 계속 업데이트 되고 있습니다.

Tagged
5개 답변, 3 voices Last updated by Avatar of 082net082net 8 years, 10 months 전
  • Avatar of Audrey ParkAudrey Park
    Participant
    @sheiswriter
    #29576

    안녕하세요.

    오늘 아침에 회사 홈페이지가 10여분간 접속이 되지 않았습니다.

    Error establishing a database connection

    이라는 메시지가 화면에 표시가 되었구요,  호스팅업체에 확인해 보니 DB가 잠깐 동안 죽었더라구요. 그래서 Mysql 로그를 받아서 살펴보았는데,  접속할 때마다 wp_options 테이블에 autoload가 ‘yes’인것을 다 읽어오더라구요. 그래서 불필요한 레코드들을 좀 지워봤습니다.

     

    더 살펴보다 보니까 워드프레스 고유주소값을 테이블에 계속 업데이트 하고 있네요.

    INSERT INTO wp_options (option_name, option_value, autoload) VALUES (‘rewrite_rules’, ‘a:101:{s:56:\”archives/category/(.+?)/

    . . . . 중략… e=$matches[2]\”;}’, ‘yes’)  ON DUPLICATE KEY UPDATE option_name = VALUES(option_name), option_value = VALUES(option_value), autoload = VALUES(autoload);

    이런식으로 업데이트를 시키고 있더라구요.

    permalink값을 .htaccess에 대충 정해놓아도 실제로 DB(wp_options)에 저장해서 사용한다는 것을 구글에서 찾아보다가 외국사이트들을 보고 오늘 알았네요.

    내용은 이해했는데, 그런데 왜 계속 그 값을 wp_options 테이블에 업데이트 하고 있는지 모르겠습니다.  한번만 가지고 있으면 되는 거 아닌가요.

     

     

     

    Avatar of Donghyeok KangDonghyeok Kang
    Participant
    @wolfkang
    #29577

    두 가지 케이스가 있을 거 같습니다.

    1> 플러그인이나 테마에서 add_rewrite_rule() 로 rewrite rule 을 추가한 다음, flush_rewrite_rules() 호출

    2> wp_options 테이블에 락이 걸려서 insert 가 되지 않아 계속 insert 를 시도

    show processlist 해서 혹시 2)와 같이 wp_options 테이블에 락을 계속 걸고 있는 게 있는지 확인해보고, 없으면 테마, 플러그인 중 flush_rewrite_rules() 호출하는 걸 찾아보면 될 듯 합니다.

    Avatar of Donghyeok Kang
    단비랩스 CTO
    Avatar of 082net082net
    Keymaster
    @082net
    #29584

    항상 잘 되다가 ‘어느날 갑자기’ 가 문제인데요,

    ‘갑자기’의 원인은 항상 존재하더군요.

    • 플러그인을 새로 설치했다거나
    • 어떤 설정값을 새로 고쳤다거나
    • 서버에 어떠한 작업을 했다거나

    일단… wp_options 에서 autoload => yes 로 되어있는 것들은 이 문제와 상관없으니 그냥 원래대로 되돌리시는게 좋을 테구요(아마도… 코어를 수정하셨을듯…)

    반복적으로 요청된다고 말씀하신 SQL구문은… 조금 이상한게 UPDATE 가 아니라 INSERT 라는 점인데요. 그래서 ‘DUPLICATE KEY UPDATE’ 에러가 발생하는 것이구요.

    또한 단일 row를 insert 하는 구문이 아니라 INSERT INTO ….. VALUES….  와 같이 dump 방식의 코드를 쓰고 있는것도 워드프레스 DB API 를 이용하지 않는 방식으로 보입니다. 어떤 스크립트에서 저 작업을 진행하는지 한 번 찾아보시는게 좋을 것 같네요.

    Avatar of 082net
    Facebook 사용자 모임 그룹 도 함께 운영되고 있으며, 격 주로 미트업과 스터디를 진행하고 있으니 관심 있으신 분들의 많은 참여 바랍니다 🙂
    Avatar of Audrey ParkAudrey Park
    Participant
    @sheiswriter
    #29587

    Donghyeok Kang님 답변 감사합니다.  두가지 경우다 찾아보겠습니다.

     

     

    Avatar of Donghyeok KangDonghyeok Kang
    Participant
    @wolfkang
    #29590

    add_option() 함수에서 insert into wp_options ~~ on duplicate key update ~~ 와 같은 SQL 문을 사용합니다. 플러그인이나 테마에서 add_option(‘rewrite_rules’, ~~) 를 실행하지 않나 싶군요.

    Avatar of Donghyeok Kang
    단비랩스 CTO
    Avatar of 082net082net
    Keymaster
    @082net
    #29591

    add_option 함수 내용은 2.x대 이후에 볼 일이 없었는데 그렇게 바뀌었었군요 🙂

    Avatar of 082net
    Facebook 사용자 모임 그룹 도 함께 운영되고 있으며, 격 주로 미트업과 스터디를 진행하고 있으니 관심 있으신 분들의 많은 참여 바랍니다 🙂
6 글 보임 - 1에서 6 까지 (총 6 중에서)
  • 답변은 로그인 후 가능합니다.