it-swarm.com.de

Wie werden Logdateien in MySQL angezeigt?

Ich habe gelesen, dass der MySQL-Server eine Protokolldatei erstellt, in der alle Aktivitäten aufgezeichnet werden - beispielsweise wann und welche Abfragen ausgeführt werden.

Kann mir jemand sagen, wo es in meinem System existiert? Wie kann ich es lesen?

Grundsätzlich muss ich die Datenbank mit unterschiedlichen Eingaben sichern [Sicherung zwischen zwei Daten], also denke ich, dass ich hier eine Protokolldatei verwenden muss, deshalb möchte ich es tun ...

Ich denke, dieses Protokoll muss irgendwie gesichert werden, da vertrauliche Informationen wie Benutzernamen und Passwort protokolliert werden können [wenn dies für eine Abfrage erforderlich ist]. so kann es gesichert werden, nicht leicht zu sehen sein?

Ich habe Root-Zugriff auf das System. Wie kann ich das Protokoll anzeigen?

Wenn ich versuche, /var/log/mysql.log zu öffnen, ist es leer.

Dies ist meine Konfigurationsdatei:

[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
Nice        = 0

[mysqld]
log = /var/log/mysql/mysql.log 
binlog-do-db=zero



user        = mysql
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
skip-external-locking

bind-address        = 127.0.0.1
#
# * Fine Tuning
#
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
159
Arjun

Hier ist eine einfache Möglichkeit, sie zu aktivieren. In MySQL müssen wir oft 3 Protokolle sehen, die meistens während einer Projektentwicklung benötigt werden.

  • The Error Log. Es enthält Informationen zu Fehlern, die auftreten, während der Server ausgeführt wird (auch Starten und Stoppen des Servers).

  • The General Query Log. Dies ist eine allgemeine Aufzeichnung dessen, was mysqld tut (Verbinden, Trennen, Abfragen).

  • The Slow Query Log. Es besteht aus "langsamen" SQL-Anweisungen (wie durch den Namen angegeben).

Standardmäßig sind in MYSQL keine Protokolldateien aktiviert. Alle Fehler werden im Syslog angezeigt. (/ Var/log/syslog)

Um sie zu aktivieren, führen Sie einfach die folgenden Schritte aus

Schritt 1: Wechseln Sie zu dieser Datei ( /etc/mysql/conf.d/mysqld_safe_syslog.cnf ) und entfernen oder kommentieren Sie diese Zeile.

Schritt 2: Gehen Sie zur mysql conf-Datei (/etc/mysql/my.cnf) und fügen Sie die folgenden Zeilen hinzu

Um das Fehlerprotokoll zu aktivieren, fügen Sie Folgendes hinzu

[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log

[mysqld]
log_error=/var/log/mysql/mysql_error.log

Um das allgemeine Abfrageprotokoll zu aktivieren, fügen Sie Folgendes hinzu

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

Um das Protokoll für langsame Abfragen zu aktivieren, fügen Sie Folgendes hinzu

log_slow_queries       = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

Schritt 3: Speichern Sie die Datei und starten Sie mysql mit den folgenden Befehlen neu

service mysql restart

Um Protokolle zur Laufzeit zu aktivieren, melden Sie sich beim mysql-Client an (mysql -u root -p) und geben Sie Folgendes ein:

SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';

Abschließend möchte ich noch Folgendes erwähnen: Ich habe dies aus einem Blog gelesen . Vielen Dank. Für mich geht das.

Klicken Sie auf hier , um den Blog zu besuchen

142
loyola

Sie müssen die Abfrageprotokollierung in MySQL aktivieren.

1.Bearbeiten Sie /etc/my.cnf

 [mysqld] 
 log =/tmp/mysql.log 

2.Starten Sie den Computer oder den mysqld-Dienst neu

 Dienst mysqld neu starten 

3.Öffnen Sie phpmyadmin/jede Anwendung, die mysql/mysql console verwendet, und führen Sie eine Abfrage aus

4.cat /tmp/mysql.log (Sie sollten die Abfrage sehen)

42
danidacar

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

  • log_error für das Fehlermeldungsprotokoll;
  • general_log_file für die allgemeine Abfrageprotokolldatei (falls durch _general_log_ aktiviert);
  • slow_query_log_file für die langsame Abfrageprotokolldatei (falls durch _slow_query_log_ aktiviert);

Führen Sie den folgenden Shell-Befehl aus, um die Einstellungen und ihren Speicherort anzuzeigen:

_mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
_

Führen Sie den folgenden Befehl im Terminal aus, um den Wert des Fehlerprotokolls zu drucken:

_mysql -e "SELECT @@GLOBAL.log_error"
_

Führen Sie Folgendes aus, um den Inhalt der Fehlerprotokolldatei in Echtzeit zu lesen:

_Sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
_

Hinweis: Hit Control-C wenn fertig

Wenn das allgemeine Protokoll aktiviert ist, versuchen Sie Folgendes:

_Sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
_

Um mysql für den Kennwortzugriff zu verwenden, fügen Sie den Parameter _-p_ oder _-pMYPASS_ hinzu. Damit es nicht vergessen wird, können Sie es in Ihrem _~/.my.cnf_ konfigurieren, z.

_[client]
user=root
password=root
_

So wird es für das nächste Mal in Erinnerung bleiben.

33
kenorb

In meiner (ich habe LAMP installiert) /etc/mysql/my.cnf-Datei habe ich folgende, kommentierte Zeilen im Abschnitt [mysqld] gefunden:

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

Ich musste diese Datei als Superuser mit Terminal öffnen:

Sudo geany /etc/mysql/my.cnf

(Ich bevorzuge Geany anstelle von gedit oder VI, es spielt keine Rolle)

Ich habe sie nur auskommentiert und die Datei gespeichert und dann mit mysql neu gestartet

Sudo service mysql restart

Führen Sie mehrere Abfragen aus, öffnen Sie die Datei (/var/log/mysql/mysql.log) und das Protokoll war da :)

9
Line

Aus dem MySQL-Referenzhandbuch:

Standardmäßig werden alle Protokolldateien im Datenverzeichnis erstellt.

Überprüfen Sie den Ordner /var/lib/mysql.

8
Mark Nenadov

Ergänzend zur Antwort von loyola ist zu erwähnen, dass ab MySQL 5.1 log_slow_queries veraltet ist und durch slow-query-log ersetzt wird.

Wenn Sie log_slow_queries verwenden, schlägt Ihr service mysql restart oder service mysql start fehl

3
Shell> mysqladmin flush-logs


Shell> mv Host_name.err-old backup-directory
1
Test

Zusätzlich zu den obigen Antworten können Sie Befehlszeilenparameter für Protokollierungsoptionen an den mysqld-Prozess übergeben, anstatt Ihre conf-Datei manuell zu bearbeiten. So aktivieren Sie beispielsweise die allgemeine Protokollierung und geben eine Datei an:

mysqld --general-log --general-log-file=/var/log/mysql.general.log

Wenn Sie die obigen Antworten bestätigen, erhalten Sie mit mysqld --help --verbose die Werte aus der conf-Datei (daher ist die Ausführung mit den Befehlszeilenoptionen general-log FALSE). während mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log gibt:

general_log     ON
general_log_file        /var/log/mysql.general.log

Verwenden Sie eine etwas kompaktere Syntax für das Fehlerprotokoll:

mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log
1
br3w5