2012-03-19 2 views
1

VPS에 Dreamhost가 있지만 mySQL 서버가 공유됩니다. 특정 사이트에서 발생하는 모든 MySQL 쿼리의 접근 가능한 로그를 생성하기 시작합니다.공유 서버에서 mySQL 로깅 쿼리

나는 이것을 내 추상화 계층에 넣을 수는 있지만, 궁금해서 모든 쿼리가 로깅 및 검토 할 수있는 파일에 기록되도록 설정할 수있는 sql_log_off와 같은 것이 있습니까?

+0

mysqlnd 드라이버가 제공하는 통계에 관심이 많습니다. http://www.php.net/manual/en/mysqlnd.stats.php – hakre

답변

1

질문에서 묻는 내용을 이해하십시오. 당신이 할 수있는 일은 쿼리를 파일에 기록하는 일종의 래퍼로 래핑하는 것입니다. 이 파일은 텍스트 파일이나 볼 수있는 권한이있는 사용자 만 허용하는 PHP 파일 일 수 있습니다 (로그 뷰어 스크립트가이를 포함 할 수 있으므로 적절한 액세스 권한이있는 사용자 만 볼 수 있습니다).

물론 그렇게 할 수 있는지 여부는 물론입니다. (당신은 당신이 다음을 통해 제어 할 수 없습니다 사이트에서 쿼리를 기록하고자하는 경우 잘 모르겠습니다.)


에 관심이있을 래퍼의 예 :

function sql_query($query, $show=0) 
    { 
    global $queries, $debugginglist; 
    $thequery = mysql_query($query) or print(mysql_error()."<br>Query was: <code>".htmlspecialchars($query)."</code>"); 
    $queries++; 

    if ($show == 1) 
    { 
     print "($queries): Query was: <i><code>".htmlspecialchars($query)."</code></i><br>"; 
    } 

    $debugginglist .= "$qbr($queries): Query was: <i><code>$query</code></i><br>"; 


    //this is just to give an idea for logging, NOT an exact solution 
    $logquery = fopen("querylog.txt", "ab+"); 
    fputs($logquery, "\r\n$query"); 
    fclose($logquery); 

    return $thequery; 
    } 
당신은 같은 수 있습니다
+0

감사합니다. 사실, 내가 결국 그렇게했습니다. 게시물을 업데이트해야합니다. 필자는 PHP 추상화 레이어를 사용하여 모든 쿼리 루틴에 로깅 루틴을 추가하고 다양한 수준의 로깅을 제어하기 위해 다양한 수준의 전역을 추가했습니다. – jerrygarciuh

관련 문제