我有一個帶有Dreamhost的VPS,但mySQL服務器是共享的。我真的想開始生產每個MySQL查詢特定網站問題的可訪問日誌。在共享服務器上查詢mySQL的日誌記錄
我可以將這個捲到我的抽象層,但我很好奇是否有像sql_log_off可以在運行時設置,所有查詢都會登錄到我可以旋轉和檢查的文件?
我有一個帶有Dreamhost的VPS,但mySQL服務器是共享的。我真的想開始生產每個MySQL查詢特定網站問題的可訪問日誌。在共享服務器上查詢mySQL的日誌記錄
我可以將這個捲到我的抽象層,但我很好奇是否有像sql_log_off可以在運行時設置,所有查詢都會登錄到我可以旋轉和檢查的文件?
從我所瞭解的問題問: 你可以做的是把你的查詢包裝成某種包裝器,將查詢記錄到文件中。這可能是一個文本文件或一個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;
}
謝謝。事實上,這是我最終做的。我應該更新這個帖子。我使用我自己創建的PHP抽象層,併爲所有查詢例程添加了一個日誌例程,並添加了一個具有各種級別的全局程序來控制需要的日誌級別。 – jerrygarciuh 2012-05-24 13:02:38
你可能會爲對mysqlnd驅動提供的統計很感興趣:http://www.php.net/manual/en/mysqlnd.stats.php – hakre 2012-03-19 18:43:02