Speicherort des Fehlerprotokolls?

15

Schreibt MySQL eine Protokolldatei? Wenn ja, wie lautet der Pfad (unter Ubuntu / Linux)?

Maulik Patel
quelle

Antworten:

11
  • Allgemeines Protokoll - alle Abfragen - siehe VARIABLE general_log
  • Langsames Protokoll - Abfragen langsamer als long_query_time-slow_query_log_file
  • Binlog - für Replikation und Backup - log_bin_basename
  • Relaisprotokoll - auch zur Replikation
  • Allgemeine Fehler - mysqld.err
  • Start / Stopp - mysql.log(nicht sehr interessant) -log_error
  • InnoDB Redo Log - iblog*

In der Variablen basedirund im datadirStandardverzeichnis finden Sie viele Protokolle

Einige Protokolle werden von anderen VARIABLES ein- und ausgeschaltet. Einige werden entweder in eine Datei oder in eine Tabelle geschrieben.

Rick James
quelle
3

Die MySQL-Protokolle werden von den globalen Variablen bestimmt, z.

  • log_error für das Fehlermeldungsprotokoll;
  • general_log_filefür die allgemeine Abfrageprotokolldatei (falls aktiviert durch general_log);
  • slow_query_log_filefür die langsame Abfrageprotokolldatei (falls aktiviert durch slow_query_log);

Führen Sie den folgenden Shell-Befehl aus, um die Einstellungen und die Speicherorte der Protokolle anzuzeigen:

mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log

Vielen Dank an @kenorb unter /programming//a/37685324/470749

Ryan
quelle
2

Ja, MySQL schreibt eine Protokolldatei.

Sein Pfad ist /var/log/mysql.login der log_errorKonfigurationsvariablen definiert.

Es gibt auch eine Protokolldatei für Fehler /var/log/mysql.err

Brijesh Goswami
quelle
2

Abgesehen vom Fehlerprotokoll unter Windows ist keines der MySQL-Protokolle aktiviert. Dadurch werden die Serverressourcen für die Datenbank maximiert. Aus diesem Grund ist es ratsam, sie nach Bedarf zu aktivieren.

Das kann es auch schwierig machen zu wissen, welche Protokolle zu einem bestimmten Zeitpunkt aktiviert sind. Aus diesem Grund möchte ich alle meine Konfigurationsvariablen an einem Ort haben, damit ich sie schnell nachschlagen kann. Es gibt ein paar GUI-Tools, die dafür gut sind. Ich persönlich benutze Navicat für MySQL und Navicat Premium .

Beide verfügen über ein Überwachungstool, das eine Registerkarte mit allen Servervariablen in einer umfassenden Liste enthält.

Servervariablen general_log und general_log_file im Navicat Server Monitor-Tool

Freundliche Grüße!

Rob Gravelle
quelle
Leider setzt das nur den Wert bis zum nächsten Neustart. OTOH, das General Log ist ein ziemliches Festplattenproblem, daher ist es im Allgemeinen gut, es sofort auszuschalten, nachdem Sie die benötigten Informationen erhalten haben. (Andere Protokolle können wahrscheinlich
Rick James
1

Führen Sie den folgenden Befehl auf dem Terminal aus, um den genauen Pfad zu ermitteln:

 mysqladmin variables | grep log_error
Sachin Singh
quelle
1

Protokolldateien befinden sich normalerweise unter /var/log/. MySQL-Server-Protokolldateien werden normalerweise durch mysql.nameOfLogFile identifiziert.

Tyrannisieren
quelle
1

Ein bisschen spät hier,

Sie können den aktuellen Speicherort der Protokolldatei in MYSQL ermitteln, indem Sie die globalen Variablen überprüfen.

Die folgende Abbildung zeigt beispielsweise, ob Ihr general_log aktiviert oder deaktiviert ist, und den Speicherort von general_log_file auf Ihrem System.

SHOW GLOBAL VARIABLES LIKE '%general%';
Jon
quelle