Ведение журнала запросов для MySQL на общем сервере - PullRequest
1 голос
/ 19 марта 2012

У меня есть VPS с Dreamhost, но сервер mySQL используется совместно. Я действительно хочу начать создавать доступные журналы каждого запроса MySQL, который вызывает определенный сайт.

Я могу вручную свернуть это в свой уровень абстракции, но мне было любопытно, было ли что-то вроде sql_log_off, которое можно установить во время выполнения, чтобы все запросы входили в файлы, которые я могу вращать и просматривать?

1 Ответ

1 голос
/ 24 мая 2012

Из того, что я понимаю из вопроса: что вы могли бы сделать, это обернуть ваши запросы в какую-нибудь оболочку, которая записывает запросы в файл.Это может быть текстовый файл или файл 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...