2012-03-19 75 views
1

我有一個帶有Dreamhost的VPS,但mySQL服務器是共享的。我真的想開始生產每個MySQL查詢特定網站問題的可訪問日誌。在共享服務器上查詢mySQL的日誌記錄

我可以將這個捲到我的抽象層,但我很好奇是否有像sql_log_off可以在運行時設置,所有查詢都會登錄到我可以旋轉和檢查的文件?

+0

你可能會爲對mysqlnd驅動提供的統計很感興趣:http://www.php.net/manual/en/mysqlnd.stats.php – hakre 2012-03-19 18:43:02

回答

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 2012-05-24 13:02:38

相關問題