Home / Linux / MySQL Log File aktivieren – Error vs. Query vs. Slow Query

MySQL Log File aktivieren – Error vs. Query vs. Slow Query

Im MySQL Datenbank Server gibt es verschiedene Möglichkeiten und Wege um ein Logging zur Fehleranalyse zu aktivieren.

Ich möchte hier kurz zeigen welche unterschiedlichen Logfiles es gibt und wie diese aktiviert werden. Da mein Server Betriebsystem wie immer Debian ist, kann es gut möglich sein, dass bei anderen Linux Distributionen die Konfigurationen abweichen. Ich gehe hierbei auf das Error Log, den Query Log und den Slow Query Log ein, den Binary Log lasse ich außen vor, da er nur unter speziellen Voraussetzung zum Einsatz kommt und hoch performante Hardware voraussetzt.

  • Errror Log: Beinhaltet alle Error (Fehler) Informationen inkl. Start und Stop
  • Query Log: Loggt alle Befehle und Queries, welche am MySQL Server abgesetzt werden.
  • Slow Query Log:  Wie der Name schon sagt, werden hier alle „slow queries“, also alle langsamen SQL Statements geloggt

MySQL Logging aktivieren

Die MySQL Konfigurationsdatei befindet sich unter /etc/mysql/my.cnf. Hier werden sämtliche Logging Parameter unter [mysqld] aufgeführt. Die Datei kann mit eurem Lieblingseditor bearbeitet werden. zB: vi 😉

# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# Here you can see queries with especially long duration
#log_slow_queries = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
# other settings you may need to change.
#server-id = 1
#log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
#binlog_do_db = include_database_name
#binlog_ignore_db = include_database_name

Logfiles sind in der Standardkonfiguration deaktiviert. Lediglich das Error Log wird an den Syslog übergeben.

MySQL Error Log aktivieren

Standardmässig werden unter Debian die MySQL Errors in den Syslog geschrieben. Die Konfigurationsdatei hierfür liegt unter /etc/mysql/conf.d/mysqld_safe_syslog.cnf welche folgendes beinhaltet:

[mysqld_safe]
syslog

Syslog auslesen:

tail /var/log/syslog

Wer die Error Log nicht in den Syslog, sondern als eigenständige Logfile haben möchte, kann die oberen Zeilen einfach auskommentieren oder die Datei /etc/mysql/conf.d/mysqld_safe_syslog.cnf löschen. In der my.cnf muss dann folgendes hinzugefügt werden:

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

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

MySQL Query Log aktivieren

Um den Query Log zu aktivieren genügt es die zwei folgenden Zeilen in der my.cnf auszukommentieren. Die Logfile kann natürlich auch auf einen anderen Pfad gelegt werden:

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

Query Log ansehen:

tail /var/log/mysql.log

MySQL Slow Query Log aktivieren

Der Slow Query Log wird ähnlich wie der Standard Query log in der my.cnf aktiviert:

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

Slow Query Log ansehen:

tail /var/log/mysql-slow.log

MySQL Server neu starten

Damit die Änderungen wirksam werden muss der MySQL Server noch neu gestartet werden:

/etc/init.d/mysql restart
MySQL Log File aktivieren – Error vs. Query vs. Slow Query
3.96 (79.2%) 25 Bewertungen

Über Patrick Schoyswohl

Hallo, mein Name ist Patrick Schoyswohl und ich bin Systemadministrator in einer Agentur für neue Medien und seit 2009 Betreiber und leidenschaftlicher Blogger von SysADMINsLife.com. Meine Leidenschaft gehört den Webservern und der Serverüberwachung auf Open-Source Basis. Falls du gefallen an meinen Artikel hast, kannst du mir gerne auf Google+, Facebook oder Twitter folgen.

Auch cool

apache logo

HowTo: Apache mit php-fpm und mod-fastcgi unter Debian Wheezy

Installation des Apache Webservers mit PHP-FPM und mod_fastcgi unter Debian Wheezy. So funktioniert das Setup… …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.