共享服务器上mySQL的查询日志记录


Query logging for mySQL on shared server

我有一个带有Dreamhost的VPS,但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;
    }