Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie aktiviere ich das langsame MySQL-Abfrageprotokoll?

Version 5.1.6 und höher:

1. Rufen Sie die MySQL-Shell auf und führen Sie den folgenden Befehl aus:

set global slow_query_log = 'ON';

2. Aktivieren Sie alle anderen gewünschten Optionen. Hier sind einige gängige Beispiele:

Protokolldetails für Abfragen, von denen erwartet wird, dass sie alle Zeilen abrufen, anstatt einen Index zu verwenden:

   set global log_queries_not_using_indexes = 'ON'

Legen Sie den Pfad zum Protokoll für langsame Abfragen fest:

  set global slow_query_log_file ='/var/log/mysql/slow-query.log';

Legen Sie fest, wie lange eine Abfrage ausgeführt werden muss, bevor sie protokolliert wird:

   set global long_query_time = 20;
     (default is 10 seconds)

3. Bestätigen Sie, dass die Änderungen aktiv sind, indem Sie die MySQL-Shell aufrufen und den folgenden Befehl ausführen:

show variables like '%slow%';

Versionen vor 5.1.6:

  1. Bearbeiten Sie die Datei /etc/my.cnf mit Ihrem bevorzugten Texteditorvi /etc/my.cnf

  2. Fügen Sie die folgende Zeile unter dem Abschnitt „[mysqld]“ hinzu. Fühlen Sie sich frei, den Pfad zur Protokolldatei beliebig zu aktualisieren:

    log-slow-queries=/var/log/mysql/slow-query.log

3. Aktivieren Sie bei Bedarf zusätzliche Optionen. Hier sind die gleichen häufig verwendeten Beispiele von oben:

Legen Sie fest, wie lange eine Abfrage ausgeführt werden muss, bevor sie protokolliert wird:

  `long_query_time=20
  (default is 10 seconds)`

Protokolldetails für Abfragen, von denen erwartet wird, dass sie alle Zeilen abrufen, anstatt einen Index zu verwenden:

 `log-queries-not-using-indexes`

4. Starten Sie den MySQL-Dienst neu:

service mysqld restart

5. Bestätigen Sie, dass die Änderung aktiv ist, indem Sie die MySQL-Shell aufrufen und Folgendes ausführen:

show variables like '%slow%';

Aktualisierung:1

Laut MySQL-Dokumentation tritt der Fehler #1193 auf, wenn Sie falschen Code für SQLSTATE verwenden.

Message: Unknown system variable %s

Und wie Sie auf derselben Seite sehen können, ist der SQLSTATE 99003 nicht definiert.

siehe diesen Link:

http://dev.mysql.com/doc /refman/5.5/en/slow-query-log.html

http://dev.mysql.com/doc /refman/5.1/en/slow-query-log.html